可能重复:
Difference between dates
How to calculate the date difference between 2 dates using php
所以,我有两个约会。例如,2010-09-24
和2010-09-25
。我想检查这两个日期之间的差异是否为1天。
我不需要获得86400
的值,这意味着在一秒钟内获得一天。
不要忘记月份可能是28天,28天,29天,30天,31天。
感谢。
我现在拥有的是什么,但是当月份之间存在差异时它不起作用:
$strto = strtotime($date);
$d1 = date('d', $strto);
$d2 = date('d', time());
echo $d2- $d1;
答案 0 :(得分:1)
为什么使用返回当月日期的date('d'...
?
strtotime
将创建一个UNIX时间戳,这正是time()
返回的内容,因此abs(time() - strtotime($date))
应该已经完成了这项工作。这样您就不必担心一个月有多少天,因为您只使用时间戳。
这将为您提供(完整)天数:
floor( abs(time() - strtotime($date)) / 86400 )
答案 1 :(得分:1)
不要使用日期值 - (例如date('d', ...)
) - 将其保留为整数(strtotime()
的结果)。 然后减去这些日期,然后获取floor(difference / 86400)
。
像这样:
$dt = strtotime($date);
echo floor(abs(time() - $dt) / 86400);
答案 2 :(得分:1)
您可以使用strtotime来获取
之间的秒数echo abs(strtotime('2010-09-24') - strtotime('2010-09-25'));
答案 3 :(得分:1)
如果你有PHP 5.3,你可以很好地使用DateTime类:
<?php
$datetime1 = new DateTime('2010-09-25');
$datetime2 = new DateTime('2010-09-26');
$interval = $datetime1->diff($datetime2);
$intervaldays = (int) $interval->format('%R%d'); // %R signs the result +/-
这可能不如使用strtotime方法有效,但它非常易读。