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

ASP.NET MVC中jQuery Ajax日期解析与格式转换问题

解决ASP.NET MVC中jQuery Ajax日期格式化问题

问题原因

你碰到的Invalid Date错误,是因为直接用parseInt(GetSTTList[i].RequiredVisitDate)解析整个Date(1665774000000)字符串时,parseInt从左到右读取,遇到字母D就停止解析,返回NaN,自然无法生成有效的Date对象。

日期解析与格式化方案

先从Date(1665774000000)里提取时间戳数字,转成Date对象后,再手动格式化为15-Oct-2022格式:

// 处理单条数据的日期
const rawDate = GetSTTList[i].RequiredVisitDate;
// 提取括号内的时间戳(两种方法任选其一)
// 方法1:正则匹配数字部分
const timestamp = parseInt(rawDate.match(/\d+/)[0]);
// 方法2:字符串截取(要去掉末尾的右括号)
// const timestamp = parseInt(rawDate.substr(6, rawDate.length - 7));

const date = new Date(timestamp);

// 定义英文月份缩写数组
const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
// 拼接成目标格式
const formattedDate = `${date.getDate()}-${monthAbbrs[date.getMonth()]}-${date.getFullYear()}`;

// 此时formattedDate即为"15-Oct-2022"格式

后端优化方案(可选)

如果不想在前端处理Date(...)这种非标准格式,可在控制器层直接返回ISO标准格式的日期,前端解析会更简便:

// 控制器中修改日期输出格式
RequiredVisitDate = x.RequiredVisitDate.ToString("yyyy-MM-ddTHH:mm:ss"),

前端此时直接解析ISO字符串即可:

const date = new Date(GetSTTList[i].RequiredVisitDate);
// 再用上面的格式化方法转成目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:25:21