zoukankan      html  css  js  c++  java
  • js 日期格式化及日期增减

    //Demo:new Date().format("yyyy-MM-dd hh:mm:ss.SSS")
    Date.prototype.format = function (format) {
        var o = {
            "M+": this.getMonth() + 1, //month
            "d+": this.getDate(), //day
            "h+": this.getHours(), //hour
            "m+": this.getMinutes(), //minute
            "s+": this.getSeconds(), //second
            "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
            "S": this.getMilliseconds() //millisecond
        }
        if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
        (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o) if (new RegExp("(" + k + ")").test(format))
            format = format.replace(RegExp.$1,
            RegExp.$1.length == 1 ? o[k] :
            ("00" + o[k]).substr(("" + o[k]).length));
        return format;
    }
    
    Date.prototype.addYears = function (num) {
        num = parseInt(num);
    
        var sYear = this.getFullYear();
        var sMonth = this.getMonth();
        var sDay = this.getDate();
    
    
        var eYear = sYear + num;
        var eMonth = sMonth;
        var eDay = sDay;
    
        var eDate = new Date(eYear, eMonth, eDay);
    
        while (eDate.getMonth() != eMonth) {
            eDay--;
            eDate = new Date(eYear, eMonth, eDay);
        }
    
        var times = eDate.getTime() - new Date(sYear, sMonth, sDay).getTime();
        return new Date(new Date().getTime() + times);
    }
    //Demo:new Date().addMonths(-1)
    Date.prototype.addMonths = function (num) {
        num = parseInt(num);
    
        var sYear = this.getFullYear();
        var sMonth = this.getMonth() + 1;
        var sDay = this.getDate();
    
        var eYear = sYear;
        var eMonth = sMonth + num;
        var eDay = sDay;
        while (eMonth > 12) {
            eYear++;
            eMonth -= 12;
        }
        while (eMonth <= 0) {
            eYear--;
            eMonth += 12;
        }
    
        var eDate = new Date(eYear, eMonth - 1, eDay);
    
        while (eDate.getMonth() != eMonth - 1) {
            eDay--;
            eDate = new Date(eYear, eMonth - 1, eDay);
        }
    
        var times = eDate.getTime() - new Date(sYear, sMonth - 1, sDay).getTime();
        return new Date(new Date().getTime() + times);
    }
    
    Date.prototype.addDates = function (num) {
        return this.addHours(num * 24);
    }
    Date.prototype.addHours = function (num) {
        return this.addMinutes(num * 60);
    }
    Date.prototype.addMinutes = function (num) {
        return this.addSeconds(num * 60);
    }
    
    Date.prototype.addSeconds = function (num) {
        num = parseInt(num);
        return new Date(new Date().getTime() + num * 1000);
    }
  • 相关阅读:
    MySQL:批量修改表的排序规则
    Python黑客编程3网络数据监听和过滤
    springboot redis 项目实战 完整篇
    C#读取U盘序列号
    AS3,ReferenceError: Error #1056: 无法为 ×× 创建属性 ×××。
    知道挖掘机如何从货车上下来吗?
    一次进销存软件架构的实践(二)——业务外观层设计
    重构你的软件企业
    遇到了火狐扩展全部丢失的问题
    分布式系统设计原理与方案
  • 原文地址:https://www.cnblogs.com/xbzhu/p/7422136.html
Copyright © 2011-2022 走看看