Mysql 当日期列为空时,strotime返回1970年的日期

Mysql 当日期列为空时,strotime返回1970年的日期,mysql,sql-server,date,Mysql,Sql Server,Date,我想以dd-mm-yyyy格式显示$p->due\u date 如果数据库中的日期列为空,则显示的日期为:01-01-1970 <?=strftime(config_item('date_format'), strtotime($p->due_date))?> 如果数据库中的日期为空,则不应显示任何内容,否则应显示dd mm yyyy格式的日期 提前谢谢 Daniel数据库中的日期字段可为空,如果为空,则返回空值。这是正确的,因为strotime需要日期,因此它将显示

我想以
dd-mm-yyyy
格式显示
$p->due\u date

如果数据库中的日期列为空,则显示的日期为:01-01-1970

<?=strftime(config_item('date_format'), strtotime($p->due_date))?>  

如果数据库中的日期为空,则不应显示任何内容,否则应显示dd mm yyyy格式的日期

提前谢谢


Daniel

数据库中的日期字段可为空,如果为空,则返回空值。这是正确的,因为strotime需要日期,因此它将显示unix历元日期,即01-01-1970。只需使用if条件或三元运算符即可解决此问题


谢谢

您的数据库中的日期字段可为空,如果是,则返回空值。这是正确的,因为strotime需要日期,因此它将显示unix历元日期,即01-01-1970。只需使用if条件或三元运算符即可解决此问题

谢谢检查此代码:

$date = date("Y-m-d H:i:s", strtotime(null)); // $date = '1970-01-01 01:00:00'
所以你可以写条件:

<?=($p->due_date ? strftime(config_item('date_format'), strtotime($p->due_date : '')))?>

或通过
?:

检查此代码:

$date = date("Y-m-d H:i:s", strtotime(null)); // $date = '1970-01-01 01:00:00'
所以你可以写条件:

<?=($p->due_date ? strftime(config_item('date_format'), strtotime($p->due_date : '')))?>


或通过
?:

短条件,如果不插入日期,则默认情况下表中的日期将为
0000-00-00
,因此请检查此项,如果日期不等于此,则使用strotime我会感到困惑。您的问题标有
mysql
sqlserver
,但您的实际问题似乎是关于PHP的?(至少,这看起来像PHP,不像任何奇怪的专有SQL语法…)如果不插入日期,那么默认情况下表中的日期将是
0000-00-00
,因此请检查此项,如果日期不等于此,则使用strottimei会感到困惑。您的问题标有
mysql
sqlserver
,但您的实际问题似乎是关于PHP的?(至少,这看起来像PHP,不像任何奇怪的专有SQL语法…)