我在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)