ホームページ >バックエンド開発 >PHPチュートリアル >日付に 1 日追加しても翌月に繰り越されないのはなぜですか?
月ロールオーバーによる日付加算の修正
コードは日付に 1 日を加算するつもりですが、それより前の日付を返しているようです追加。この問題を詳しく調べて、月単位の加算を正しく行う解決策を提供しましょう。
問題のあるコード:
$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00")); echo 'date before day adding: '.$stop_date; $stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date)); echo ' date after adding one day. SHOULD be rolled over to the next month: '.$stop_date;
エラーは加算を実行する行にあります:
$stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date));
この行では、strtotime() 関数を使用して日付を操作します。ただし、「1 日」のような時間オフセットを指定すると、月が正しくロールオーバーされません。
解決策
正しく日を追加して月をロールオーバーするには必要に応じて、次のいずれかのアプローチを使用できます:
PHP 5.3 :
$stop_date = '2009-09-30 20:24:00'; echo 'date before day adding: ' . $stop_date; $stop_date = date('Y-m-d H:i:s', strtotime($stop_date . ' +1 day')); echo 'date after adding 1 day: ' . $stop_date;
PHP 5.2 :
$stop_date = new DateTime('2009-09-30 20:24:00'); echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); $stop_date->modify('+1 day'); echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s');
これらのソリューションは、指定された日付に正しく 1 日を追加し、必要に応じて月を繰り越します。
以上が日付に 1 日追加しても翌月に繰り越されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。