Javascript:日期取决于字段规范顺序?真?

Dan*_*iel 9 javascript

为什么这个代码:

var a = new Date();                             
var b = new Date();     

a.setDate(31);
a.setMonth(11);
a.setFullYear(2009);

b.setFullYear(2009);
b.setMonth(11);
b.setDate(31);
Run Code Online (Sandbox Code Playgroud)

2009年12月31日b和2009年12月3日正确输出:-O表示?不在浏览器MyHorribleScrap版本6.6.6中,但在FF 3.6和IE 8.06.6001上

CMS*_*CMS 14

这就是为什么建议使用Date带参数的构造函数.

发生的事情是当你实例化Date对象时,它获得当前日期(今天,2月26日),而2月只有28天,当你设置日期时setDate(31),它会跳到3月3日.

推荐方式:

var a = new Date(2009, 11, 31);
// new Date(year, month, date [, hour, minute, second, millisecond ]);
Run Code Online (Sandbox Code Playgroud)

  • @Daniel:希望我的评论能为你澄清一下.你从Date()开始,这是今天二月的日期...然后你把这一天设置为31,实际是3月3日,然后你改变月份,所以现在是2010年12月3日,最后你改变年份到2009年12月3日 (2认同)