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

如何在JavaScript中将\/Date(1567074191725)\/转为指定格式日期?

解决.NET JSON日期格式转换问题

我来帮你搞定这个日期转换的坑!你遇到的是.NET序列化JSON时默认生成的/Date(时间戳)/格式,直接把这个字符串传给new Date()肯定不行——Date构造函数根本不认这种格式。咱们得先把里面的时间戳提取出来,再转成需要的日期格式。

核心思路拆解

  1. 提取有效时间戳:从/Date(1567074191725)/这种字符串里抠出数字部分,这才是Date能识别的毫秒数
  2. 格式化目标日期:把Date对象转成日/月/年的格式,注意JS里月份是从0开始的(9月对应数字8,得加1)

修改后的完整代码

直接替换你现有的render函数和转换函数就行:

var values = @Html.Raw(Json.Encode(ViewBag.records)); 

// DataTable列配置
{
  title: "DATE",
  data: "timestamp",
  render: function (data) {
    return convertDotNetDate(data);
  }
},

// 自定义日期转换函数
function convertDotNetDate(dateStr) {
  // 用正则提取时间戳数字
  const timestamp = parseInt(dateStr.match(/\d+/)[0], 10);
  const date = new Date(timestamp);
  
  // 提取日、月、年,月份要+1修正JS的0起始问题
  const day = date.getDate();
  const month = date.getMonth() + 1;
  const year = date.getFullYear();
  
  // 拼接成你要的格式
  return `${day}/${month}/${year}`;
}

可选优化:补零处理

如果需要把单数字的日/月补零(比如把9变成09),可以加个简单判断:

function convertDotNetDate(dateStr) {
  const timestamp = parseInt(dateStr.match(/\d+/)[0], 10);
  const date = new Date(timestamp);
  
  const day = date.getDate().toString().padStart(2, '0');
  const month = (date.getMonth() + 1).toString().padStart(2, '0');
  const year = date.getFullYear();
  
  return `${day}/${month}/${year}`;
}

内容的提问来源于stack exchange,提问作者developer .net

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:17:03