You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用getDate()时不同日期分隔符的JS代码输出结果不同?

日期解析差异原因

这是因为Date构造函数对不同格式的日期字符串采用了不同的时区解析规则:

  • 用短横线(-)分隔的日期格式(如"2022-05-15")属于ISO 8601标准格式,Date会默认按UTC时区解析该日期,即代表UTC时间的2022年5月15日00:00。如果你的本地时区在UTC以东(比如中国是UTC+8),这个UTC时间对应的本地时间是前一天的16:00,所以调用getDate()获取本地日期时会得到14。
  • 用斜杠(/)分隔的日期格式(如"2022/05/15"),Date会按本地时区解析,直接代表本地时间的2022年5月15日00:00,因此getDate()返回的就是15。

可以通过打印不同时区的时间来验证:

temp = new Date("2022-05-15")
temp1 = new Date('2022/05/15')

console.log(temp.toUTCString()); // 输出 Wed, 15 May 2022 00:00:00 GMT
console.log(temp.toLocaleString()); // 中国时区下输出 2022/5/15 08:00:00
console.log(temp1.toLocaleString()); // 中国时区下输出 2022/5/15 00:00:00

内容的提问来源于stack exchange,提问作者DCR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:54:17