>  기사  >  웹 프론트엔드  >  몇 달 전 또는 몇 달 후의 지정된 날짜를 처리하기 위해 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일이기 때문입니다).

그러면 일부 요구에 따라 실제 상황에 따라 이 논리를 변경해야 합니다. 예를 들면: 한 달치 보증금을 지불하고 싶습니다. 현재 2.1~2.29(2월 한 달 전체)의 수수료를 납부했고, 1개월 입금액은 (3.1~3.31)이 되어야 합니다. 이 논리를 통해 3.1~3.29 이므로 실제 상황에 맞게 사용하시기 바랍니다


위 내용은 몇 달 전 또는 몇 달 후의 지정된 날짜를 처리하기 위해 JavaScript 시간을 사용하는 방법을 배웁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.