编辑:经过一番摆弄,这是解决方案:
首先,将字符串拆分为各个部分。
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 作为月份字段,因此代码中的月份为 -1 和 +1。
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();
检查更新的小提琴。