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);
Run Code Online (Sandbox Code Playgroud)
1
2
Thu Mar 01 2012 11:00:00 GMT + 1100(AUS东部标准时间)
28
1
Tue Feb 28 2012 11:00:00 GMT + 1100(AUS东部标准时间)
这是JS的错误还是有另一种方法可以找到2012年2月29日星期三?
问题是您设置项目的顺序.
您将从今天开始,即2014年3月5日.
然后,您将日期设置为29.结果:2014年3月29日.
然后你将月份设置为1.结果:2014年2月29日.哦等等,这是错误的,因为2014年不是闰年,因此JS将其更正为2014年3月1日.
最后,你设定年份.最终结果是2012年3月1日.
尝试先设置年份,然后是日期,然后是月份.
或者,正确使用构造函数:new Date(2012,1,29)
应该正常工作.