两个日期之间的天数差异

时间:2013-07-25 01:10:11

标签: php

我总是使用下面的代码计算两个日期之间的差异(以天为单位)。但是我想知道是否有更聪明的东西,有人知道更好的方法吗?

//86400 one day
$data1 = '2013-07-24 21:30:00';
$data2 = '2013-08-24 21:30:00';

$diff =  (abs(strtotime($data1) - strtotime($data2))) / 86400;

var_dump($diff);

1 个答案:

答案 0 :(得分:5)

您可以使用DateTime:diff

$data1 = new DateTime('2013-07-24 21:30:00');
$data2= new DateTime('2013-08-24 21:30:00');
$interval = $data1->diff($data2);
echo $interval->format('%R%a days');

如果您的输入日期格式不同,您还可以使用DateTime::createFromFormat获得更好的结果,例如:

$date1 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-07-24 21:30:00');
$date2 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-08-24 21:30:00');
$interval = $date1->diff($date2);
echo $interval->format('%R%a days');