javascript 日期月份加减

项目中需要用到,自己写了一个。javascript日期按月加减

<!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/lookforFree/p/4503656.html