日期之间的差异

时间:2010-10-05 15:18:15

标签: php date

  

可能重复:
  Difference between dates
  How to calculate the date difference between 2 dates using php

所以,我有两个约会。例如,2010-09-242010-09-25。我想检查这两个日期之间的差异是否为1天。

我不需要获得86400的值,这意味着在一秒钟内获得一天。

不要忘记月份可能是28天,28天,29天,30天,31天。

感谢。

我现在拥有的是什么,但是当月份之间存在差异时它不起作用:

$strto = strtotime($date);
$d1 = date('d', $strto);
$d2 = date('d', time());
echo $d2- $d1;

4 个答案:

答案 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方法有效,但它非常易读。