2
我面臨的一個奇怪的問題與提前一個月遞增日期爲以下情況 對於日期輸入作爲2014-01-31
我越來越2014-03-03
而它應該「2014年2月28日」錯誤而遞增日期1個月
我我正在使用以下代碼
$time = strtotime("2014-01-31");
$final = date("Y-m-d", strtotime("+1 month", $time));
我面臨的一個奇怪的問題與提前一個月遞增日期爲以下情況 對於日期輸入作爲2014-01-31
我越來越2014-03-03
而它應該「2014年2月28日」錯誤而遞增日期1個月
我我正在使用以下代碼
$time = strtotime("2014-01-31");
$final = date("Y-m-d", strtotime("+1 month", $time));
在1月30日或31日使用它時,php中的+1月份具有意想不到的行爲。你會在三月份得到一個約會。這是因爲php在線提高了月份數量(因此2014-01-31將會變爲2014-02-31。這不存在,所以php會將此更正爲2012-02-28 + 3.
This將讓你在正確的結果在月底
$d = new DateTime('2014-01-31');
$d->modify('last day of +1 month');
$final = $d->format('Y-m-d');
這是在PHP手冊中的解釋:http://php.net/manual/en/function.strtotime.php#107331
另外還有一個問題的答案我張貼在幾個月前一個非常類似的問題 - http://stackoverflow.com/a/19719945/368896 –
因爲在二月份他們是28天,所以它會跳到下個月,即3月3日。 –