我下面有一个函数,该函数从datepicker中获取一个字符串并将其转换为date对象,因此我可以为其添加30天。在这里,我尝试以(mm / dd / yy)的格式返回新日期,并将其添加为30天。
当第一个警报触发时,它会正确地向所选日期添加30天,并将该日期显示为“ 05/03/2011”:
2011年6月2日星期四00:00:00 GMT + 0100(格林尼治标准时间夏令时间)
第二个警报显示
5/2/2011
似乎我无法正确格式化日期并采用“ 05/03/2011”并返回“ 06/02/2011”。我可以只做一个月+ 1,但是请提供一些帮助,告诉我我做错了什么。
$('#sign_date').datepicker({
onSelect: function(dateText, inst) {
var d = new Date(dateText);
d.setDate(d.getDate() + 30);
alert(d);
var date = d.getDate();
var month = d.getMonth();
var year = d.getFullYear();
alert(month+'/'+date +'/'+year)
}
});
我也认为他们这样做的方式将显示日期和月份,例如Jan = 1和1st = 1,我希望它是Jan = 01和1st = 01
谢谢
最佳答案
对于前导零:
// add leading zero if the length equals 1
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
在使用此代码之前,也请确保在您的月份中加上1,因为
getMonth()
在一月份返回0,依此类推: var month = d.getMonth() + 1;
关于javascript - 加上30天至今(mm/dd/yyyy),然后传回字串(mm/dd/yyyy),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5931985/