我需要能够添加1,2,5或10天到今天的日期使用jQuery。


当前回答

Krishna Chytanya的原型解决方案非常好,但需要一个微小但重要的改进。 days参数必须解析为Integer,以避免当days是“1”这样的字符串时进行奇怪的计算。(我花了好几个小时才弄清楚我的申请出了什么问题。)

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

即使你不使用这个原型函数: 当使用setDate()时,一定要确保有一个Integer。

其他回答

这里有一个对我有用的解决办法。

function calduedate(ndays){

    var newdt = new Date(); var chrday; var chrmnth;
    newdt.setDate(newdt.getDate() + parseInt(ndays));

    var newdate = newdt.getFullYear();
    if(newdt.getMonth() < 10){
        newdate = newdate+'-'+'0'+newdt.getMonth();
    }else{
        newdate = newdate+'-'+newdt.getMonth();
    }
    if(newdt.getDate() < 10){
        newdate = newdate+'-'+'0'+newdt.getDate();
    }else{
        newdate = newdate+'-'+newdt.getDate();
    }

    alert("newdate="+newdate);

}

这是5天:

var myDate = new Date(new Date().getTime()+(5*24*60*60*1000));

你不需要JQuery,你可以用JavaScript来做,希望你得到它。

Krishna Chytanya的原型解决方案非常好,但需要一个微小但重要的改进。 days参数必须解析为Integer,以避免当days是“1”这样的字符串时进行奇怪的计算。(我花了好几个小时才弄清楚我的申请出了什么问题。)

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

即使你不使用这个原型函数: 当使用setDate()时,一定要确保有一个Integer。

你可以使用这个库“Datejs开源JavaScript日期库”。

[更新]在你继续之前考虑阅读这篇文章…

Moment.js

从这里安装moment.js。

NPM: $ NPM I——节省时间

Bower: $ Bower install—节省时间

接下来,

var date = moment()
            .add(2,'d') //replace 2 with number of days you want to add
            .toDate(); //convert it to a Javascript Date Object if you like

链接编号:http://momentjs.com/docs/#/manipulating/add/

Moment.js是一个非常棒的管理Date对象的Javascript库

祝你好运。