new Date()日期格式處理


https://blog.csdn.net/zwt_guiji/article/details/80258944

 

績效項目中使用的日期格式化封裝:

    $.dateChange = {
        formatDay: function (date) {
            if (date != null) {
                date = new Date(date);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                m = m < 10 ? '0' + m : m;
                var d = date.getDate();
                d = d < 10 ? ('0' + d) : d;
                return y + '-' + m + '-' + d;
            }
            return "";
        },
        formatSecond: function (date) {
            date = new Date(date);
            var y = date.getFullYear();
            var m = date.getMonth() + 1;
            m = m < 10 ? '0' + m : m;
            var d = date.getDate();
            d = d < 10 ? ('0' + d) : d;
            var h = date.getHours();
            h = h < 10 ? '0' + h : h;
            var min = date.getMinutes();
            min = min < 10 ? '0' + min : min;
            var s = date.getSeconds();
            s = s < 10 ? '0' + s : s;
            return y + '-' + m + '-' + d + '&ensp;' + h + ':' + min + ':' + s;
        },
        /**
         * 格式化時間對象----功能可擴展
         * @param date [Date] 要格式化的時間對象
         * @param format [String]格式化的形式  yyyy-mm-dd hh:MM:ss   yyyy-m-d h:M:s
         * @returns {string} 格式化的結果字符串
         */
        formatDate: function (date, format) {
            var year = date.getFullYear(),
                month = date.getMonth() + 1,
                day = date.getDate(),
                hour = date.getHours(),
                minute = date.getMinutes(),
                second = date.getSeconds();
            // 兩位
            format = format
                .replace(/yyyy/i, year)
                .replace(/mm/i, $.string.formatNum2(month))
                .replace(/dd/i, $.string.formatNum2(day))
                .replace(/hh/i, $.string.formatNum2(hour))
                .replace(/MM/i, $.string.formatNum2(minute))
                .replace(/ss/i, $.string.formatNum2(second));
            //一位
            format = format
                .replace(/m/i, month)
                .replace(/d/i, day)
                .replace(/h/i, hour)
                .replace(/M/i, minute)
                .replace(/s/i, second);
            return format;
        }
    }
    $.dateUtil = {
        /**
         * 計算時間
         * @param date [Date] 作為基准的日期對象
         * @param type [String] year, month, day
         * @param length [int] 基准時間之后:正數,基准時間之前:負數
         * @returns {*} 計算后的日期對象
         */
        calcTime: function (date, type, length) {
            // 根據類型和長度修改date對象
            var result = new Date(date.getTime());
            type == "year" ? result.setFullYear(result.getFullYear() + length)
                : type == "month" ? result.setMonth(result.getMonth() + length)
                : type == "day" ? result.setDate(result.getDate() + length)
                    : "";
            return result;
        },
        /**
         * 獲得從指定時間開始,推算指定時間的日期
         * @param type [String] year, month, day
         * @param length [int] 當前時間之后:正數,當前時間之前:負數
         * @param dateStr [String] 指定的時間字符串
         * @param format [String] 生成時間的格式,具體格式見$.dateChange.formatDate
         * @returns {{current: string, result: string}}
         */
        getTimeBlock: function (type, length, dateStr, format) {
            var _self = this;
            //初始化format
            format = format ? format : "yyyy-mm-dd";
            //默認當前時間
            var date = dateStr ? new Date(dateStr) : new Date();
            var resultDate = _self.calcTime(date, type, length);
            var formatDate = $.dateChange.formatDate;
            return {
                current: formatDate(date, format),
                result: formatDate(resultDate, format)
            };
        },
        /**
         * 補足兩個時間段之間的時間,返回一個數組
         * @param startTime yyyy-mm-dd
         * @param endTime yyyy-mm-dd
         * @returns {Array}
         */
        completeTwoDate: function (opt) {
            var formatDate = $.dateChange.formatDate;
            var _self = this,
                startTime = opt.startTime,
                endTime = opt.endTime,
                type = opt.type,
                length = opt.length,
                format = opt.format;
            var result = [];
            var startDate = new Date(Date.parse(startTime.replace(/-/g, "/"))),
                // var startDate = new Date(startTime),
                endDate = new Date(endTime);
            while (endDate.getTime() >= startDate.getTime()) {
                result.push(formatDate(startDate, format));
                startDate = _self.calcTime(startDate, type, length);
            }
            return result;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM