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

如何在JavaScript中将"dd/mm/yyyy"格式日期转换为ISO字符串

解决DD/MM/YYYY格式日期转ISO字符串的问题

首先,你的代码逻辑本身是正确的,但得到错误输出大概率是运行时变量值不符合预期(比如dateStr被意外修改,或者parts数组被其他代码篡改)。先确认正确的实现方式:

正确代码示例

const dateStr = "29/12/2022";
const [day, month, year] = dateStr.split("/");
// JavaScript的Date构造函数中月份是0-11范围,所以要减1
const myDate = new Date(year, month - 1, day);
console.log(myDate.toISOString());
// 输出示例(取决于本地时区):2022-12-28T16:00:00.000Z 或 2022-12-29T00:00:00.000Z

为什么你的输出不对?

你给出的错误输出2024-05-11T22:00:00.000Z对应的是new Date(2024,4,12)(月份减1后为4,对应5月),这说明运行代码时:

  • parts[2]的值是2024(而非预期的2022)
  • parts[1]的值是5(而非预期的12)
  • parts[0]的值是12(而非预期的29)

请检查运行时dateStr和parts变量的实际值,确认未被其他代码修改。

额外注意事项

  • toISOString()会将日期转换为UTC时区的字符串,若本地时区不是UTC,输出的日期时间会和本地时间有偏移。如果需要基于本地时区生成固定格式的ISO字符串(不带时区偏移),可以手动拼接:
    const formatted = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}T00:00:00.000Z`;
    console.log(formatted); // 2022-12-29T00:00:00.000Z
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:30:59