如何在php中比较两个日期并回显更新的日期?

Ila*_*sda 1 php

如何在php中比较两个日期并回显更新的日期?

我的日期采用以下格式:date("F j, Y, g:i a");给我们提供August 12, 2011, 9:45 am.

我的约会时间如下:

  • 日期1 $created
  • 日期2 $updated/如果没有更新,则值为0000-00-00 00:00:00

任何建议都非常感谢.

J0H*_*0HN 9

$date1 = new DateTime("August 12, 2011, 9:45 am");
$date2 = new DateTime("August 12, 2011, 10:45 am");

$never_date = ($date1<$date2)?$date1:$date2;

echo $never_date->format("F j, Y, g:i a");
Run Code Online (Sandbox Code Playgroud)

但请注意,这0000-00-00 00:00:00是一个有效的输入DateTime(),但不会按预期工作.它将导致-0001-11-30 00:00:00(至少对于Win7 x64上的PHP 5.3-VC9-nts).

更新:我看到两个可供选择的工作选项0000-00-00 00:00:00

  • 允许数据库中该列中的空值并删除DEFAULT 0000-00-00 00:00:00.
  • 检查是否$updated == '0000-00-00 00:00:00'如此,只需返回$created:
  • 检查是否$updated == ''(空字符串),如果返回$created:

    if ($updated=='0000-00-00 00:00:00' || $updated=='')
        $never_date = $created;
    else
        $never_date = ($created<$updated)?$created:$updated;
    
    Run Code Online (Sandbox Code Playgroud)

我怀疑0000-00-00 00:00:00为一个永远不会更新的记录显示它是正确的行为.