我有下面的函数,它从datepicker中获取一个字符串并将其转换为日期对象,这样我就可以添加30天。从那里我试图将新日期作为一个字符串返回30天添加到它,格式为(mm / dd / yy)。
当第一个警报触发时,它会在所选日期正确添加30天,并在选择日期显示为“05/03/2011”:
Thu Jun 02 2011 00:00:00 GMT + 0100(GMT Daylight Time)
第二个警告显示
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
由于
答案 0 :(得分:3)
对于前导零:
// add leading zero if the length equals 1
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
在使用此代码之前,请确保在您的月份中添加1,因为getMonth()
在1月份返回0,依此类推:
var month = d.getMonth() + 1;
答案 1 :(得分:2)
惊喜,惊讶...... getMonth()
方法返回0..11范围内的月份。
答案 2 :(得分:0)
凯利的回答对我有用
刚刚改变了这个
if(month<9) month = "0"+(month+1);
if(date<10) day = "0"+date;