zoukankan      html  css  js  c++  java
  • JavaScript时间操作工具类

    /**
     * 时间操作工具类
     *
     * @author zwq
     *
     */
    var TimeFrameUtil = {
        /**
         * 格式化日期
         * @param date {Date} 日期
         * @param pattern {string} 格式,例:"yyyy-MM-dd HH:mm:ss"
         * @returns {String} 返回格式化后的日期,如:"2018-01-22 18:04:30"
         */
        format : function (date, pattern) {
            var time = {
                "M+": date.getMonth() + 1,
                "d+": date.getDate(),
                "H+": date.getHours(),
                "m+": date.getMinutes(),
                "s+": date.getSeconds(),
                "q+": Math.floor((date.getMonth() + 3) / 3),
                "S+": date.getMilliseconds()
            };
            if (/(y+)/i.test(pattern)) {
                pattern = pattern.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
            }
            for (var k in time) {
                if (new RegExp("(" + k + ")").test(pattern)) {
                    pattern = pattern.replace(RegExp.$1, RegExp.$1.length == 1 ? time[k] : ("00" + time[k]).substr(("" + time[k]).length));
                }
            }
            return pattern;
        },
        /**
         * 将指定时间偏移几小时
         * @param time {String} 指定时间,例:"2018-01-24 17:00"
         * @param offset {Number} 偏移量,正数代表加几小时,负数代表减几小时,例:1
         * @param pattern {String} 返回时间的格式,例:"yyyy-MM-dd HH:mm"
         * @returns {String} 返回计算后的时间,如:"2018-01-24 18:00"
         */
        offsetHours : function (time, offset, pattern) {
            var date = new Date(Date.parse(time));
            var yyyy = date.getFullYear();
            var MM = date.getMonth();
            var dd = date.getDate();
            var HH = date.getHours() + offset;
            var mm = date.getMinutes();
            var ss = date.getSeconds();
            return this.format(new Date(yyyy, MM, dd, HH, mm, ss), pattern);
        },
        /**
         * 将指定月份偏移几个月
         * @param month {String} 指定月份,例:"2018-01"
         * @param offset {Number} 偏移量,负数代表上几个月,正数代表下几个月,例:1
         * @returns {String} 返回计算后的月份,如:"2018-02"
         */
        offsetMonths : function (month, offset) {
            var date = new Date(Date.parse(month));
            var year = date.getFullYear();
            var month = date.getMonth();
            var preOrNextMonth = month + offset;
            return this.format(new Date(year, preOrNextMonth), "yyyy-MM");
        },
        /**
         * 获取指定日期是星期几
         * @param date {String} 指定日期,例:"2018-01-23"
         * @returns {Number} 返回星期几(1-7),如:2
         */
        dayOfWeek : function (date) {
            var time = new Date(Date.parse(date));
            var weekday=new Array(7);
            weekday[0]= 7;
            weekday[1]= 1;
            weekday[2]= 2;
            weekday[3]= 3;
            weekday[4]= 4;
            weekday[5]= 5;
            weekday[6]= 6;
            return weekday[time.getDay()];
        },
        /**
         * 获取指定月份有多少天
         * @param month {String} 指定月份:例"2018-01"
         * @returns {number} 返回指定月份有多少天,如:31
         */
        daysInMonth : function (month) {
            var date = new Date(Date.parse(month));
            var year = date.getFullYear();
            var month = date.getMonth();
            if (month == 1) {
                if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                    return 29;
                else
                    return 28;
            } else if ((month <= 6 && month % 2 == 0) || (month > 6 && month % 2 == 1))
                return 31;
            else
                return 30;
        }
    };
    

      

  • 相关阅读:
    GDI+绘制字体显示不全
    vector赋值
    创建不响应(不激活)窗口
    MouseHover
    duilib窗口从任务栏恢复问题
    java 加解密
    maven依赖仲裁
    $.ajax()
    mybatis 动态SQL
    Json学习
  • 原文地址:https://www.cnblogs.com/javahr/p/9248343.html
Copyright © 2011-2022 走看看