var d = new Date();
var date = 29;
var month = 1; // Feb
var year = 2012; // Bissextile year
d.setUTCDate(date);
d.setUTCMonth(month);
d.setUTCFullYear(year);
d.setUTCHours(0);
d.setUTCMinutes(0);
d.setUTCSeconds(0);
document.write(d.getUTCDate()+"<br />"+d.getUTCMonth()+"<br />"+d);
1
2
Thu Mar 01 2012 11:00:00 GMT + 1100(AUS东部标准时间)
28
1
2012年2月28日星期二11:00:00 GMT + 1100(澳大利亚东部标准时间)
这是JS的错误还是有另一种方法可以找到2012年2月29日星期三?
答案 0 :(得分:8)
问题在于您设置项目的顺序。
您从今天开始,即2014年3月5日。
然后您将日期设置为29.结果:2014年3月29日。
然后你将月份设置为1.结果:2014年2月29日。哦等等,这是错误的,因为2014年不是闰年,因此JS将其更正为2014年3月1日。
最后,你设定年份。最终结果是2012年3月1日。
尝试先设置年份,然后设置日期,然后设置月份。
或者,正确使用构造函数:new Date(2012,1,29)
应该可以正常工作。