JavaScript の日付に月を加算する
JavaScript で日付を操作する場合、多くの場合、指定した月数を加算または減算する必要があります。基本的なアプローチは簡単ですが、月の繰り越しや閏年などの特定の特殊なケースの処理には慎重な考慮が必要です。簡単な解決策
追加する最も簡単なアプローチJavaScript の日付オブジェクトまでの月数は次のとおりです。<code class="javascript">function addMonths(dateObj, num) { return dateObj.setMonth(dateObj.getMonth() + num); }</code>
ビジネス ルールの遵守
ただし、この単純なソリューションは、結果の日付を次の日付にする必要があるビジネス ルールに常に準拠しているとは限りません。月末に残ります。たとえば、1 月 31 日に 1 か月を追加すると、存在しない 2 月 31 日になります。高度な解決策
この問題に対処するための、より高度な解決策は次のとおりです。 available:<code class="javascript">function addMonths(dateObj, num) { var currentMonth = dateObj.getMonth() + dateObj.getFullYear() * 12; dateObj.setMonth(dateObj.getMonth() + num); var diff = dateObj.getMonth() + dateObj.getFullYear() * 12 - currentMonth; if (diff != num) { dateObj.setDate(0); } return dateObj; }</code>
使用例
単純なソリューションと高度なソリューションは両方とも、さまざまなシナリオで使用できます。<code class="javascript">// Adding 12 months to February 29th, 2016 var newDate = addMonths(new Date(2016, 1, 29), 12); // Returns February 28th, 2017 // Subtracting 1 month from January 1st, 2017 var newDate = addMonths(new Date(2017, 0, 1), -1); // Returns December 1st, 2016</code>
以上がJavaScript の日付オブジェクトに月を正確に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。