【问题标题】:strtotime returns a 1970 date when date column is null当日期列为空时,strtotime 返回 1970 年的日期
【发布时间】:2016-03-29 12:47:28
【问题描述】:

我想以dd-mm-yyyy 格式显示$p->due_date

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

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

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

提前致谢

丹尼尔

【问题讨论】:

  • 如果你不插入日期,那么默认情况下它会在表中为0000-00-00,所以检查这个如果日期不等于之后使用strtotime
  • 我很困惑。您的问题标有mysqlsql-server,但您的实际问题似乎是关于PHP 的? (至少,它看起来像 PHP,不像任何奇怪的专有 SQL 语法......)

标签: mysql sql-server date


【解决方案1】:

检查此代码:

$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 : '')))?>

或通过?:进行短路

【讨论】:

    【解决方案2】:

    您的数据库中的日期字段是否可以为空,如果是,那么它将返回正确的 null,并且由于 strtotime 需要日期,因此它将显示 unix 纪元日期,即 01-01-1970。只需使用 if 条件或三元运算符即可解决此问题..

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2023-04-09
      • 2013-04-19
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多