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

JS转换ISO日期为MM/DD/YYYY时12月误转为下年1月的问题

问题原因

  • JavaScript Date 构造函数接收年、月、日三个参数时,月份参数遵循0起始的计数规则:0对应公历1月,1对应2月,……,11才对应12月。
  • 你拆分ISO字符串得到的月份值是'12',直接传入构造函数时超出了0~11的合法月份范围,JS日期处理逻辑会自动做溢出进位:月份12会自动进位为下一年的1月,所以最终得到的时间戳对应的是次年1月的日期。

修复方案

只需要在传入月份参数时减1即可,示例代码如下:

// 此时bill.date_paid的值为 '2021-12-03T00:00:00.000Z'
let isoDateString = new Date(bill.date_paid).toISOString().split('T')[0].split('-');
// 月份参数减1匹配0起始规则
bill.date_paid = new Date(isoDateString[0], Number(isoDateString[1]) - 1, isoDateString[2]).getTime();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:45:05