ホームページ >バックエンド開発 >PHPチュートリアル >日付に 1 日追加しても翌月に繰り越されないのはなぜですか?

日付に 1 日追加しても翌月に繰り越されないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 11:35:13353ブラウズ

Why Does Adding a Day to a Date Not Roll Over to the Next Month?

月ロールオーバーによる日付加算の修正

コードは日付に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。