我正在嘗試使用DateTime類(php> = 5.3)來計算2日期的差異。使用DateTime類計算日期差異的錯誤
手冊中的例子很簡單明瞭,我嘗試過這個例子並且工作得很好。 但是,如果改變的開始和結束日期,還有一個問題:
$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
同月不工作得很好! :)
我的電腦吐出'總共6015天,'1個月,2天'。有趣的...... D – Czechnology 2011-03-08 16:56:00
@Czechnology也許它考慮到28天的3月! :D我沒有和其他月份一起試過,只用了Jan,並且它和手動例子一樣運作良好。 – 2011-03-08 16:59:55
我已經做了一些測試設置日期到其他月份,在我看來,有一個錯誤的地方。 3月份被認爲是28天,4月份是31月。 – krtek 2011-03-08 17:01:27