我总是使用下面的代码计算两个日期之间的差异(以天为单位)。但是我想知道是否有更聪明的东西,有人知道更好的方法吗?
//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);
答案 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');