我想要計算一個php項目的兩個日期之間的差異。如何計算兩個日期之間的差異正確php
例如: 是什麼六月的4月1日的第2次之間的區別?
計算至5 = 1個月第2個從4月2日的差
的第一方法。從5月2日到6月1日= 30天。 =>四月2日到6月1號= 1個月和30天
計算差值
的第二種方法,我們計數可爲1個月。然後添加4月2日至30日(28日)以及6月(1日)的日期=> 1個月和29天。
我認爲第一種方法是正確的,只是因爲我想大多數人的計算這種方式。
所以剛開始我試圖用日期時間:: DIFF()函數
function dateDiff($date1, $date2 = false) {
if (!$date2)
$date2 = date('Y-m-d');
$datetime1 = new DateTime($date1 , new DateTimeZone('EUROPE/Sofia'));
$datetime2 = new DateTime($date2 , new DateTimeZone('EUROPE/Sofia'));
$interval = $datetime1->diff($datetime2);
$y = $interval->format('%y');
$m = $interval->format('%m');
$d = $interval->format('%d');
return $y . " " . $m . " " . $d;
}
但我注意到它沒有正確計算的差異。 「2015年2月3日」之間的差異,「2015年4月2日」應該是1個月和30天,(02-03至03-03 = 1個月。然後我們計算的天休息04-02,它們是30),BUT的差異計算出它作爲1個月和27天(I估計是計算由我上述的第二方法中的差異)。因此它要麼計算錯誤,要麼第二種方法是正確的計算方法。
但是 讓我們來看看這個例子: 2015-05-01和2015-03-31(這次我們倒退了)。差異返回1個月區別,我認爲應該是1個月和1天。
而且2015年5月1日和2015年2月28日之間的差異應該是2個月1天,但DIFF函數返回2個月3天。
那麼,哪個是計算兩個日期差異的正確方法呢? DateTime :: diff()是否正確計算?有沒有辦法通過第一種方法計算兩個日期之間的差異。
https://github.com/fightbulc/moment.php –