没有找到2月15日

Iss*_*lly 11 javascript date

我在javascript中,在控制台中运行它

d = new Date();             
d.setMonth(1);
d.setFullYear(2009);
d.setDate(15);                                  
d.toString();
Run Code Online (Sandbox Code Playgroud)

输出:

"Sun Mar 15 2009 18:05:46 GMT-0400 (EDT)"
Run Code Online (Sandbox Code Playgroud)

为什么会这样?这似乎是一个浏览器错误.

CMS*_*CMS 30

那是因为当你初始化一个新的日期,它来自今天的日期,所以今天是2008年10月30日,然后你将月份设置为2月,所以没有2月30日,所以首先设置日期,然后是月份,然后是年:

d = new Date();
d.setDate(15);                    
d.setMonth(1);
d.setFullYear(2009);   
Run Code Online (Sandbox Code Playgroud)

但正如@Jason W所说,最好使用Date构造函数:

new Date(year, month, date [, hour, minute, second, millisecond ]);
Run Code Online (Sandbox Code Playgroud)


Jas*_*red 27

最好在一个步骤中构造一个Date对象,以避免Date对象处于模糊或无效状态:

d = new Date(2009, 1, 15);
Run Code Online (Sandbox Code Playgroud)