javascript实现日期按月份加减

原文:https://www.jb51.net/article/66132.htm

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8">
  <title></title>
  <script>
    function dateToDate(date) {
      var sDate = new Date();
      if (typeof date == 'object'
        && typeof new Date().getMonth == "function"
        ) {
        sDate = date;
      }
      else if (typeof date == "string") {
        var arr = date.split('-')
        if (arr.length == 3) {
          sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]);
        }
      }

      return sDate;
    }


    function addMonth(date, num) {
      num = parseInt(num);
      var sDate = dateToDate(date);

      var sYear = sDate.getFullYear();
      var sMonth = sDate.getMonth() + 1;
      var sDay = sDate.getDate();

      var eYear = sYear;
      var eMonth = sMonth + num;
      var eDay = sDay;
      while (eMonth > 12) {
        eYear++;
        eMonth -= 12;
      }

      var eDate = new Date(eYear, eMonth - 1, eDay);

      while (eDate.getMonth() != eMonth - 1) {
        eDay--;
        eDate = new Date(eYear, eMonth - 1, eDay);
      }

      return eDate;
    }

    function calcDate() {
      var d = document.getElementById('date').value;
      var n = document.getElementById('num').value;
      var eDate = addMonth(d, n);
      document.getElementById('result').innerHTML = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate();
    }
  </script>
</head>
<body>
  <input type="date" id="date" />
  <input type="number" id="num" value="1" />
  <input type="button" value="计算" onclick="calcDate()" />
  <div id="result"></div>
</body>
</html>
原文地址:https://www.cnblogs.com/zhang1f/p/13936819.html