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);
    }
  • 相关阅读:
    SignalR
    log4net
    nginx
    mongodb
    uni-app监听软键盘是否弹起,ios不支持
    js插件开发兼容commonJS、AMD、CDM的UMD写法
    uni-app 实现后端返回的图片文件流转base64
    input输入框限制只能输入数字和一个小数点
    Uni-app工程转vue-cli工程步骤
    H5 移动端开发注意事项
  • 原文地址:https://www.cnblogs.com/xbzhu/p/7422136.html
Copyright © 2011-2022 走看看