ホームページ  >  記事  >  バックエンド開発  >  JavaScript で日付に月を正確に加算するにはどうすればよいですか?

JavaScript で日付に月を正確に加算するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 09:44:29183ブラウズ

How to Accurately Add Months to a Date in JavaScript?

JavaScript で日付に月を加算する

このスレッドでは、開発者がユーザー指定の終了日に 2 か月を加算する方法を求めています。

これを実現するには、addMonths() というカスタム関数が推奨されます。

<code class="js">function addMonths(dateObj, num) {
  return dateObj.setMonth(dateObj.getMonth() + num);
}</code>
ただし、この単純なアプローチには限界があります。たとえば、7 月 31 日に 1 か月追加すると、9 月 30 日ではなく 10 月 1 日になります。この問題に対処するために、より微妙な関数を使用できます。

<code class="js">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="js">function addMonths(date, months) {
  var d = date.getDate();
  date.setMonth(date.getMonth() + +months);
  if (date.getDate() != d) {
    date.setDate(0);
  }
  return date;
}</code>
このアプローチでは、月末の動作が維持されることも保証されます。簡素化された実装を提供します。

以上がJavaScript で日付に月を正確に加算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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