我正在尝试将字符串转换为Date对象,并且它适用于所有日期,除了12月31日(按对象说12月1日而不是31日)之外。我不知道为什么。这是我的JavaScript
代码:
var dt = new Date();
dt.setDate("31");
dt.setMonth("11");
dt.setFullYear("2014");
但我的变量值为:
Mon Dec 01 2014 11:48:08 GMT+0100 (Paris, Madrid)
如果我在其他任何日期都这样做,则我的对象将返回适当的值。你知道我做错了什么吗?
:(少于31天的月份不安全)setMonth
应该之前 setDate
var dt = new Date();
dt.setFullYear(2014);
dt.setMonth(11);
dt.setDate(31);
并且setMonth
的第二个参数也可以用来设置日期。
var dt = new Date();
dt.setFullYear(2014);
dt.setMonth(11, 31);
因此,单独使用setMonth
和setDate
仍会导致意外结果。
如果设置的值大于其逻辑范围,则该值将自动调整为相邻的值。
例如,如果今天是2014-09-30
,则
var dt = new Date();
dt.setFullYear(2014); /* Sep 30 2014 */
dt.setMonth(1); /* Mar 02 2014, see, here the auto adjustment occurs! */
dt.setDate(28); /* Mar 28 2014 */
为避免这种情况,请直接使用构造函数设置值。
var dt = new Date(2014, 11, 31);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句