在日期中加入一天時遇到問題:解決月份滾動問題
提供的程式碼嘗試將日期增加一天,但無法計算對於月份延期。以下是問題和潛在解決方案的詳細說明:
理解問題
PHP 的 strtotime() 函數無法正確處理月份翻轉。當在月末附近的日期添加一天時,這一點變得很明顯,如提供的代碼所示:
$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00"));
生成的$stop_date 回滾到上個月的最後一天,而不是前進到10 月1st.
解決方案1:使用字串連線技巧
到解決此問題,請在呼叫strtotime() 之前手動將「 1 day」表達式附加到原始日期字串:
$stop_date = date('Y-m-d H:i:s', strtotime($stop_date . ' +1 day'));
此技術強制strtotime() 解釋正確的日期範圍並正確添加一天日期。
解決方案2:利用DateTime 類別(PHP 5.2.0 )
對於PHP 5.2.0 ,您可以利用DateTime 類別:
$stop_date = new DateTime('2009-09-30 20:24:00'); $stop_date->modify('+1 day'); echo $stop_date->format('Y-m-d H:i:s');
modify()方法提供了一種方便的方法來遞增日期,自動處理月份翻滾。
以上是如何在 PHP 中正確新增日期並處理月份翻轉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!