ホームページ >バックエンド開発 >PHPチュートリアル >PHP で月を追加するときに日付のオーバーランを防ぐにはどうすればよいですか?
概要
PHP の日付操作関数を使用すると、月を追加できます, ただし、場合によっては後続の月に超過が発生する可能性があります。この問題は、2 月 29 日に月を追加するなど、対象月に存在しない日付に月を追加するときに発生します。
提案された解決策: カスタム日付追加関数
この問題に対処するには、結果の月の末日を超えないようにして日付に月を追加するカスタム関数を作成できます。
実装:
<code class="php">function add($date_str, $months) { $date = new DateTime($date_str); // Extract the day of the month as $start_day $start_day = $date->format('j'); // Add 1 month to the given date $date->modify("+{$months} month"); // Extract the day of the month again so we can compare $end_day = $date->format('j'); if ($start_day != $end_day) { // The day of the month isn't the same anymore, so we correct the date $date->modify('last day of last month'); } return $date; }</code>
説明:
例:
<code class="php">$result = add('2011-01-28', 1); // 2011-02-28 $result = add('2011-01-31', 3); // 2011-04-30 $result = add('2011-01-30', 13); // 2012-02-29 $result = add('2011-10-31', 1); // 2011-11-30 $result = add('2011-12-30', 1); // 2011-02-28</code>
以上がPHP で月を追加するときに日付のオーバーランを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。