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


当前回答

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

其他回答

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

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);

}

为什么不简单地使用

function addDays(theDate, days) {
    return new Date(theDate.getTime() + days*24*60*60*1000);
}

var newDate = addDays(new Date(), 5);

或者-5减去5天

Date.prototype.addDays = function(days)
{
    var dat = new Date(this.valueOf() + days * 24 * 60 * 60 * 1000 );
    return dat;
}

如果不需要Date中的时间,那么您可以简单地使用Date对象的方法提取月、年和日,并在Day部分添加“n”天。

var n=5; //number of days to add. 
var today=new Date(); //Today's Date
var requiredDate=new Date(today.getFullYear(),today.getMonth(),today.getDate()+n)

参考:Mozilla Javascript GetDate

编辑:参考:Mozilla JavaScript日期

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

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

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