我习惯使用第四种语法 from MDN 创建 Date
对象as new Date(year, Month, day,hours, 分钟,秒,毫秒);
但最近我尝试设置一个只有一年的 Date
对象(如 >new Date(2017)
),但正如您所料,它被视为一个值
,并将年份视为毫秒数。
是否有任何方法可以在不更改语法的情况下轻松使用年份并期望正确设置日期?
最佳答案
我想到了两个解决方案:
(1) 在构造日期时,将年份参数设置为 2017
,并将月份参数设置为 0
:
let d = new Date(2017, 0);
console.log(d.toString());
参数将被视为本地时间;月份和日期将为 1 月 1 日;所有时间分量都将设置为 0。
(2) 在构造日期时指定 "2017T00:00"
作为第一个也是唯一的参数:
let d = new Date("2017T00:00");
console.log(d.toString());
根据当前规范,这是一种有效的格式,浏览器应该将其视为本地时间。该行为与前面的示例相同。
关于javascript - 创建仅包含年份的日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993728/