我在javascript中,在控制台中运行它
d = new Date(); d.setMonth(1); d.setFullYear(2009); d.setDate(15); d.toString();
输出:
"Sun Mar 15 2009 18:05:46 GMT-0400 (EDT)"
为什么会这样?这似乎是一个浏览器错误.
那是因为当你初始化一个新的日期,它来自今天的日期,所以今天是2008年10月30日,然后你将月份设置为2月,所以没有2月30日,所以首先设置日期,然后是月份,然后是年:
d = new Date(); d.setDate(15); d.setMonth(1); d.setFullYear(2009);
但正如@Jason W所说,最好使用Date构造函数:
new Date(year, month, date [, hour, minute, second, millisecond ]);
最好在一个步骤中构造一个Date对象,以避免Date对象处于模糊或无效状态:
d = new Date(2009, 1, 15);