js 日期处理和计算

Date.prototype.addSeconds = function(seconds) {
    this.setSeconds(this.getSeconds() + seconds);
    return this;
};

Date.prototype.addMinutes = function(minutes) {
    this.setMinutes(this.getMinutes() + minutes);
    return this;
};

Date.prototype.addHours = function(hours) {
    this.setHours(this.getHours() + hours);
    return this;
};

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + days);
    return this;
};

Date.prototype.addWeeks = function(weeks) {
    this.addDays(weeks*7);
    return this;
};

Date.prototype.addMonths = function (months) {
    var dt = this.getDate();
    
    this.setMonth(this.getMonth() + months);
    var currDt = this.getDate();
    
    if (dt !== currDt) {  
        this.addDays(-currDt);
    }
    
    return this;
};

Date.prototype.addYears = function(years) {
    var dt = this.getDate();
    
    this.setFullYear(this.getFullYear() + years);
    
    var currDt = this.getDate();
    
    if (dt !== currDt) {  
        this.addDays(-currDt);
    }
    
    return this;
};

$(document).ready(function() {
    var now = new Date();
    now.addDays(-10);
    $("#dt10days")[0].valueAsDate = now;   
    
    var now = new Date();
    now.addDays(2);
    $("#dt2days")[0].valueAsDate = now;   
    
    now = new Date();
    now.addWeeks(3);
    $("#dt3weeks")[0].valueAsDate = now;
    
    now = new Date();
    now.addMonths(7);
    $("#dt7months")[0].valueAsDate = now;  
    
    now = new Date();
    now.addYears(4);
    $("#dt4years")[0].valueAsDate = now;
});


日期格式化:


Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};


你可能感兴趣的:(js 日期处理和计算)