ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 時間を使用して、数か月前または数か月後の指定された日付を処理する方法を説明します

JavaScript 時間を使用して、数か月前または数か月後の指定された日付を処理する方法を説明します

怪我咯
怪我咯オリジナル
2017-03-29 16:15:291511ブラウズ

通常のプロジェクト開発プロセスでは、JavaScript で時間を処理する必要がある場面がよくありますが、その処理は 2 種類しかありません (1. 論理処理 2. フォーマット変換処理)。もちろん、関連する技術ブログに関しては、目を閉じて庭にあるいくつかのブログを掴むこともできますが、私がしなければならないことは、幸運にもそれらに出会うことができたので、全力を尽くして分析することです。それを私にとって最適なものに変換し、私自身の知識にすると同時に、困っている学生が遭遇する関連する小さな問題を解決するのに役立つことを願っています。


時間ロジック処理

このタイプの一般的な要件は、数か月後 (前) の今日の日付を計算することです。

/**
 *获取几个月前的输入日期
 *{param:DateTime} date 输入日期(YYYY-MM-DD)
 *{param:number } monthNum 月数
 */
 GetPreMonthDay: function (date,monthNum)
 {
  var dateArr = date.split('-');
  var year = dateArr[0]; //获取当前日期的年份
  var month = dateArr[1]; //获取当前日期的月份
  var day = dateArr[2]; //获取当前日期的日
  var days = new Date(year, month, 0);
  days = days.getDate(); //获取当前日期中月的天数
  var year2 = year;
  var month2 = parseInt(month) - monthNum;
  if (month2 <=0) {
   year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12);
   month2 = 12 - (Math.abs(month2) % 12);
  }
  var day2 = day;
  var days2 = new Date(year2, month2, 0);
  days2 = days2.getDate();
  if (day2 > days2) {
   day2 = days2;
  }
  if (month2 < 10) {
   month2 = &#39;0&#39; + month2;
  }
  var t2 = year2 + &#39;-&#39; + month2 + &#39;-&#39; + day2;
  return t2;
 }


/**
 *获取下一个月的输入日期
 *{param:DateTime} date 输入日期(YYYY-MM-DD)
 *{param:number } monthNum 月数
 */
 GetNextMonthDay: function (date, monthNum)
 {
  var dateArr = date.split(&#39;-&#39;);
  var year = dateArr[0]; //获取当前日期的年份
  var month = dateArr[1]; //获取当前日期的月份
  var day = dateArr[2]; //获取当前日期的日
  var days = new Date(year, month, 0);
  days = days.getDate(); //获取当前日期中的月的天数
  var year2 = year;
  var month2 = parseInt(month) + parseInt(monthNum);
  if (month2 >12) {
   year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));
   month2 = parseInt(month2) % 12;
  }
  var day2 = day;
  var days2 = new Date(year2, month2, 0);
  days2 = days2.getDate();
  if (day2 > days2) {
   day2 = days2;
  }
  if (month2 < 10) {
   month2 = &#39;0&#39; + month2;
  }

  var t2 = year2 + &#39;-&#39; + month2 + &#39;-&#39; + day2;
  return t2;
 }

テスト結果:

JavaScript 時間を使用して、数か月前または数か月後の指定された日付を処理する方法を説明します

JavaScript 時間を使用して、数か月前または数か月後の指定された日付を処理する方法を説明します

29日に押すと前後29になります。 1 月 31 日を 2 月にずらすと、2 月 29 日になります (2 月には 29 日があるため)。

そして、このロジックは、いくつかのニーズに応じて、実際の状況に応じて変更する必要があります。例: 1 か月分のデポジットを支払いたいです。現在、2.1 から 2.29 まで (2 月全体) の手数料を支払っているので、1 か月のデポジットは (3.1 から 3.31) になるはずです。このロジックにより、3.1-3.29になりますので、実際の状況に応じて使用してください


以上がJavaScript 時間を使用して、数か月前または数か月後の指定された日付を処理する方法を説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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