日付の追加ロールオーバーの問題を修正する
日付に 1 日を追加すると、理想的には日付を次の連続する日に増分し、次の日付にロールオーバーします。必要に応じて来月。ただし、場合によっては、コードが元の日付より前の日付を返し、ロールオーバーの問題を示すことがあります。
指定された PHP コード スニペットを調べてみましょう:
$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;
使用時strtotime() では、日付形式を正しく指定することが重要です。上記のコードでは、日付形式が明示的に指定されていないため、予期しない動作が発生する可能性があります。
この問題を解決するには、strtotime() を使用するときに日付形式を明示的に指定します。コードの修正バージョンは次のとおりです。
$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.0 以降では、DateTime クラスを使用する代替アプローチがより正確で柔軟になります。
$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');
適切に実行する日付形式を指定し、利用可能な場合は DateTime クラスを使用すると、コードは指定された日付に正確に 1 日を追加し、ロールオーバーを正しく処理する必要があります。
以上がPHP で日付に 1 日を正しく追加して月のロールオーバーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。