DateTime差异导致错误的预期结果

时间:2014-06-05 10:57:41

标签: php datetime

$date1 = new DateTime("2014-02-28");
$date2 = new DateTime("2014-04-02");
$interval = $date1->diff($date2);

这导致1个月和5天。

我预计这将导致1个月和2天,其中一个月是2014-03-31,两天是2014-04-02

似乎月份设定为2014-03-28,然后是5天到2014-04-02。

我如何得到我期望的结果?

2 个答案:

答案 0 :(得分:3)

$date1 = new DateTime("2014-02-28");
$date2 = new DateTime("2014-04-02");
$interval = $date1->diff($date2);

echo $interval->format('%m'), ' months and ', $interval->format('%a') % 31, ' days';

答案 1 :(得分:0)

请参阅此代码段,使用strtotime()

<?php 
$result= strtotime("2014-04-02")-strtotime("2014-02-28");
$resul1=$result/(3600*24);
echo $resul1;

?>

在这里演示:http://codepad.org/fwKY75sX