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

如何将EU格式dd/mm/yyyy hh:mm:ss转为时间戳?解决getTime()日期颠倒问题

解决EU日期格式转时间戳的问题

JavaScript的Date构造函数解析带横杠的日期字符串时,默认遵循美式MM-dd-yyyy格式,所以你传入的'01-02-2003'会被识别为2003年1月2日,而非你需要的2003年2月1日。要正确处理dd/mm/yyyy hh:mm:ss格式的日期,最稳妥的方式是手动拆分字符串,再构造Date对象:

方法一:手动拆分构造Date对象

这种方法兼容性最好,不受环境解析差异影响:

function convertEuDateToTimestamp(euDateStr) {
  // 分割日期与时间部分
  const [dateSegment, timeSegment] = euDateStr.split(' ');
  // 拆分日、月、年(注意是dd/mm/yyyy顺序)
  const [day, month, year] = dateSegment.split('/').map(num => parseInt(num, 10));
  // 拆分时、分、秒
  const [hours, minutes, seconds] = timeSegment.split(':').map(num => parseInt(num, 10));
  
  // Date的月份是0索引(0=1月,11=12月),所以要减1
  const targetDate = new Date(year, month - 1, day, hours, minutes, seconds);
  return targetDate.getTime();
}

// 测试示例
console.log(convertEuDateToTimestamp('01/02/2003 01:02:03')); 
// 输出对应2003年2月1日01:02:03的时间戳

注意事项

  • 不要依赖Date构造函数直接解析非ISO 8601标准的日期字符串,不同浏览器/Node.js版本的解析行为可能不一致。
  • 手动拆分时要确保输入字符串格式严格符合dd/mm/yyyy hh:mm:ss,如果有格式不统一的情况,需要额外做格式校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:32:41