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

如何在JavaScript中将/Date(1231110000000)/格式时间戳转为DD/MM/YYYY?

解决JavaScript中/Date(xxx)/格式转DD/MM/YYYY的问题

嘿,这个需求我之前做项目的时候刚好碰到过,其实拆解成几步就很简单了,我给你一步步讲清楚:

步骤1:提取时间戳数字

这种/Date(1231110000000)/格式本质是包裹了毫秒级时间戳的字符串,我们得先把里面的纯数字提取出来。这里有两种好用的方法:

  • 正则匹配:用\d+直接匹配字符串里的所有数字,一步拿到时间戳字符串
  • 字符串分割:通过split('(')[1].split(')')[0]拆分括号前后内容,取出中间的数字

步骤2:转换为Date对象

把提取到的时间戳字符串转成数字,再传入Date构造函数,就能得到对应的日期对象了。

步骤3:格式化为DD/MM/YYYY

这里要注意两个容易踩坑的点:

  • JavaScript的getMonth()返回值是0-11(0对应1月),所以必须加1才是实际月份
  • 日和月如果是个位数,要补前导零,比如1月要变成01,5日变成05

完整实现代码

我封装了一个直接能用的函数,你可以拿去测试:

function convertDate(dateString) {
  // 提取时间戳数字
  const timestampMatch = dateString.match(/\d+/);
  if (!timestampMatch) return '无效的日期格式';
  const timestamp = timestampMatch[0];
  
  // 创建Date对象
  const date = new Date(Number(timestamp));
  
  // 补零处理日、月
  const day = String(date.getDate()).padStart(2, '0');
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const year = date.getFullYear();
  
  // 拼接成目标格式
  return `${day}/${month}/${year}`;
}

// 测试示例
console.log(convertDate('/Date(1231110000000)/')); // 输出:05/01/2009

兼容老浏览器的小技巧

如果需要兼容不支持padStart的老浏览器,可以自己写个简单的补零函数替换:

function padZero(num) {
  return num < 10 ? `0${num}` : num;
}

然后把代码里的padStart换成padZero(day)、padZero(month)就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:57:37