JavaScript Date.UTC返回异常日期问题:输入2022年12月得2023年1月
JavaScript Date.UTC 日期超出预期问题解析
问题出在月份参数的索引规则上——JavaScript 中Date.UTC和new Date()的月份参数都是从0开始计数的:
- 0 对应1月,1对应2月,……,11对应12月
你传入的2022, 12, 28里,月份值12超出了合法范围(0-11),JavaScript会自动处理日期溢出:把12月当成“2022年的第13个月”,也就是2023年1月,这就是结果多了30天的原因。
修正后的代码只需把月份参数改为11(对应实际的12月):
new Date(Date.UTC(2022, 11, 28, 11, 26, 0, 0)) // 返回正确结果:Wed Dec 28 2022 14:26:00(注:14:26是本地时区显示,UTC时间实际为11:26)
内容的提问来源于stack exchange,提问作者padavan
相关产品推荐
相关产品推荐

