实际上我有2个DateTime对象
$d1 = new DateTime('04/14/2013 8.00 AM');
$d2 = new DateTime('04/14/2013');
所以不对这两个对象进行任何更改。是否有可能与这两个对象相等。
答案 0 :(得分:1)
要获得两个DateTime对象之间的差异,请使用DateTime :: diff()方法:
$interval = $d1->diff($d2);
因此,您将获得一个DateInterval对象。要从DateInterval对象获取格式化的时差,请使用format()方法,例如:
echo $interval->format('%s seconds');
您可以看到比较DateTime对象here的更多示例。 同时检查how to use format() method。
答案 1 :(得分:0)
是的,您可以对DateTime对象使用内置的diff方法;
$interval = $d1->diff($2);
以下是手册:DateTime::diff
然后,你可以像以前一样格式化这段时间
$interval = $interval->format('%d');
答案 2 :(得分:0)
您可以格式化日期以消除时间,如:
if ($d1->format('m/d/Y') == $d2->format('m/d/Y'))
echo 'equal';
else
echo 'not equal';
或者像这样:
if (date_format($d1, 'm/d/Y') == date_format($d2, 'm/d/Y'))
echo 'equal';
else
echo 'not equal';
date_format会将日期格式化为:2013年4月14日
你必须在$ d2上做一个date_format,因为它真的是'2013-04-14 00:00:00。'