如何比较两个日期在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: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;
我怀疑为从未更新过的记录显示0000-00-00 00:00:00
是正确的行为。
将日期转换为时间戳:
if (strtotime($created) > strtotime($updated))
{
// ...
}
else
{
// ...
}