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

如何使用JavaScript转换ASP.NET返回的/Date(时间戳)/格式日期?

解决.NET DateTime序列化后的日期格式转换问题

当然可以用JavaScript转换这种/Date(1666677654000)/格式的日期,这是.NET默认序列化DateTime类型时生成的JSON格式,里面的数字是毫秒级Unix时间戳,以下是几种实用的转换方法:

方法一:提取时间戳转换为Date对象

先通过正则提取字符串中的数字时间戳,再用Date构造函数转换:

// 假设从AJAX响应中拿到的日期字符串
const dateStr = "/Date(1666677654000)/";
// 提取毫秒数
const timestamp = parseInt(dateStr.match(/\d+/)[0]);
// 生成Date对象
const date = new Date(timestamp);

方法二:正则替换直接转换

用正则替换简化提取步骤:

const dateStr = "/Date(1666677654000)/";
const date = new Date(+dateStr.replace(/\/Date\((\d+)\)\//, '$1'));

格式化日期为可读字符串

拿到Date对象后,可以自定义函数将其格式化为需要的样式(比如YYYY-MM-DD HH:mm:ss):

function formatDate(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

// 使用示例
const formattedDate = formatDate(date);
// 输出示例:2022-10-24 10:40:54

AJAX请求时自动处理(jQuery示例)

如果用jQuery发起AJAX请求,可以通过dataFilter配置提前处理所有日期格式,避免后续重复转换:

$.ajax({
  url: '你的接口地址',
  type: 'GET',
  dataFilter: function(rawData) {
    // 全局替换所有/Date(xxx)/格式为纯时间戳
    const processedData = rawData.replace(/\/Date\((\d+)\)\//g, '$1');
    return JSON.parse(processedData);
  },
  success: function(response) {
    // 此时响应中的dateCreated已转为数字时间戳,直接转换即可
    response.forEach(item => {
      item.dateCreated = formatDate(new Date(item.dateCreated));
      // 将格式化后的日期插入HTML表格
    });
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:20:23