10

我想在php中减去两个日期

例如:

$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;

$answer 应该是 7,我该怎么做?太感谢了

4

4 回答 4

21

开始使用DateTime类进行日期/时间操作:

$date1 = new DateTime('08/16/2013');
$date2 = new DateTime('08/23/2013');
$diff = $date1->diff($date2);
print_r($diff); // or $diff->days

输出 :

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 7
    [h] => 0
    [i] => 0
    [s] => 0
    [invert] => 0
    [days] => 7
)

阅读更多有关DateTime:diff()的信息。


请注意,各种strtotime()示例在日期/时间差计算中不正确。2013-03-31 21:00最简单的例子是和之间的差异2013-03-30 21:00。这对于肉眼来说是精确的 1 天差异,但如果你减去这 2 个日期,你会得到82800秒,即0.95833333333333天。这是因为时间从冬季时间更改为夏季时间。DateTime 正确处理闰年和时区。

于 2013-08-23T06:40:25.233 回答
3

尝试这个 -

<?php
$date1 = strtotime('08/16/2013');
$date2 = strtotime('08/23/2013');

echo $hourDiff=round(abs($date2 - $date1) / (60*60*24),0);
?>
于 2013-08-23T06:53:01.203 回答
0

您可以使用strtotime和减去日期

$diff = abs(strtotime('08/16/2013') - strtotime('08/23/2013'));

echo $min = floor($diff / (60*60*24)); // 7
于 2013-08-23T06:38:50.833 回答
-1
$date1 = '08/16/2013';
$date2 = '08/23/2013';
$days = (strtotime($date2) - strtotime($date1)) / (60 * 60 * 24);
print $days; 
于 2013-08-23T06:36:27.153 回答