【发布时间】:2011-07-11 06:27:16
【问题描述】:
我正在尝试使用类 DateTime (php>=5.3) 来计算与 2 个日期的差异。
手册中的示例简单明了,我尝试了该示例并且效果很好。 但是如果更改开始和结束日期,就会出现问题:
$this->start_date = '2011-03-01';
$this->end_date = '2011-03-31';
var_dump($this->start_date, $this->end_date);
$datetime1 = new DateTime($this->start_date);
$datetime2 = new DateTime($this->end_date);
$interval = $datetime2->diff($datetime1);
echo $interval->format('%a total days')."\n";
echo $interval->format('%m month, %d days');
输出是:
30 total days //ok
1 month, 2 days //no! i think it should be 0 month, 30 days
与 March 一起工作不太好! :)
【问题讨论】:
-
我的电脑吐出
6015 total days,1 month, 2 days。有趣...:D -
@Czechnology 也许考虑 28 天的三月! :D 我没有尝试过其他月份,只有 Jan,它和手动示例一样运行良好。
-
我做了一些测试,将日期设置为其他月份,在我看来,某处存在错误。 3 月有 28 天,4 月有 31 天。
-
不是一个错误的说法。因为一个月不是一个固定的单位,所以它不会费心尝试针对给定情况更正计算。反正我就是这么读的。