日付を操作する場合、誤って月末を超える状況を避けることが重要になります。この記事では、指定された日付を対象の月の範囲内に保ちながら、その日付に月を追加する信頼性の高い方法について説明します。
PHP 関数の場合、目標は、月末を超えない日付までの指定された月数。追加によりスピルオーバーが発生する場合、関数は結果を月の最終日に調整する必要があります。
目的の機能を実現するには、次の手順を利用できます。
<code class="php">function add($date_str, $months) { $date = new DateTime($date_str); $start_day = $date->format('j'); $date->modify("+{$months} month"); $end_day = $date->format('j'); if ($start_day != $end_day) { $date->modify('last day of last month'); } return $date; } // Sample tests $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で日付に月を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。