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


How to compare two dates in php and echo newer one?

如何比较两个日期在php和回声较新的一个?

我的日期格式如下:date("F j, Y, g:i a");,得到August 12, 2011, 9:45 am

我的约会日期如下:

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

任何建议都非常感谢。

$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");

但请注意,0000-00-00 00:00:00DateTime()的有效输入,但不会像预期的那样工作。它将导致-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;
    

我怀疑为从未更新过的记录显示0000-00-00 00:00:00是正确的行为。

将日期转换为时间戳:

if (strtotime($created) > strtotime($updated))
{
// ...
}
else
{
// ...
}