Php 使用日期时,如果不为空,则绕过日期,例如:0000-00-00

Php 使用日期时,如果不为空,则绕过日期,例如:0000-00-00,php,mysql,Php,Mysql,目前我正在检查(!is_null($foo))是否(!is_null($foo)),尽管当mysql列是日期并且默认为0000-00-00时,这会中断 没有添加!=“0000-00-00”用于可使用的日期字段。如果传递给该函数的日期不是日期,则该函数返回false。 我不确定您的具体需求,因为您的问题中几乎没有信息 如果不想在代码中求解,请在数据中求解 您应该让MySQL默认为NULL而不是0000-00-00更改日期列的表定义 `date` DATE NULL DEFAULT NULL 我总

目前我正在检查(!is_null($foo))是否(!is_null($foo)),尽管当mysql列是日期并且默认为0000-00-00时,这会中断


没有添加
!=“0000-00-00”

用于可使用的日期字段。如果传递给该函数的
日期
不是
日期
,则该函数返回
false

我不确定您的具体需求,因为您的问题中几乎没有信息

如果不想在代码中求解,请在数据中求解


您应该让MySQL默认为
NULL
而不是
0000-00-00

更改日期列的表定义

`date` DATE NULL DEFAULT NULL

我总是建议允许可选字段使用
NULL
,并正确区分有效值(如
0
和空字符串)与
NULL
(=未声明)之间的区别。

我想您可以使用类似的方法:

if(!(int)$foo)
{
    echo ' this is either a default value or a NULL';
}

不要让
0000-00-00
日期进入数据库。否则,不会。日期是可选的,因此在PHP中不可能。我认为,您不应将此列默认为“0000-00-00”,而应将其默认为
NULL
。如果出于任何原因,这是不可能的,那么您必须处理这个特殊值。@DerVO-这是一个非常好的主意,可以解决我所有的问题。添加此作为答案,我将接受。@DerVo抱歉,请在我留下答案后阅读您的评论!