在Stackoverflow上有很多這樣的問題,並且在將其標記爲重複之前,讓我告訴你,在我的情況下,這些工作都不起作用。爲什麼PHP在兩個日期之間返回錯誤的日期?
Date Difference in php on days?
Calculate the difference between date/times in PHP
Finding the number of days between two dates
How to calculate the difference between two dates using PHP?
以上是我已經檢查了問題。最後一個問題有一個回答Jurka
,這也不幸沒有奏效。因此,這裏是我的代碼:
$date1 = new DateTime(date('d-m-y'));
$date2 = new DateTime($etaDate);
$interval = $date1->diff($date2);
echo "difference " . $interval->days . " days ";
的$etaDate
在上述情況下,是16年3月2日和當前的日期是16年8月2日,所以應該返回5天但它返回一個非常高的數字 - 1826天。我嘗試了不同的方法,這也返回當天的數字。
一個日期值存儲在數據庫中的字符串等檢索我使用這個代碼重新把它回日期格式:
$newdate = DateTime::createFromFormat('d-m-y', $EntryDate);
$newdate->add(new DateInterval('P15D'));
$etaDate = $newdate->format('d-m-y');
$EntryDate
是保存在數據庫中的日期,$etaDate
轉換變量它變成日期格式。
那麼,什麼格式是'03-02-16'和'08-02-16' - 是2003年2月16日和2008年2月16日?如果您將不明確的值輸入到PHP的日期函數中,那麼您可能無法獲得預期產出 –
@MarkBaker否,2016年2月3日和2016年2月8日。 –
'$ etaDate'考慮了'2003-02-16'。你最近怎麼樣? –