我有一个日期格式为dd-mm-yyyy的字符串

如何在字符串中添加4周,然后使用jQuery / Javascript生成新字符串?

我有

var d = new Date(current_date);
d.setMonth(d.getMonth() + 1);
current_date_new = (d.getMonth() + 1 ) + '-' + d.getDate() + '-' + d.getFullYear();
alert(current_date_new);


但它抱怨提供的字符串格式不正确

最佳答案

编辑:fiddling有点后,这是解决方案:

首先,将字符串拆分为各个部分。

var inputString = "12-2-2005";
var dString = inputString.split('-');


然后,将字符串解析为datetime对象,并为其添加28天(4周)。

var dt = new Date(dString[2],dString[1]-1,dString[0]);
dt.setDate(dt.getDate()+28);


最后,您可以输出日期

var finalDate = dt.GetDate() + "-" + (dt.GetMonth()+1) + "-" + dt.GetYear();


此代码应返回12-3-2005

提示:似乎JavaScript的Date对象将0-11用作month字段,因此在代码中将-1和+1表示为month。

EDIT2:要执行填充,请使用以下功能:

function pad(number, length) {

    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }

    return str;

}


并将您的输出更改为

var finalDate = pad(dt.GetDate(),2) + "-" + pad(dt.GetMonth()+1,2) + "-" + dt.GetYear();


检查更新的小提琴。

10-06 09:10