gpt4 book ai didi

jquery - 自动转换 $.AJAX 响应中的所有日期

转载 作者:行者123 更新时间:2023-12-01 04:01:59 24 4
gpt4 key购买 nike

我正在使用 jQuery 向 ASP.NET MVC 应用程序发出 ajax 请求,在“成功”处理程序中,我收到一个使用 Json.NET 序列化的带有 ISO-8601 格式日期的对象:

response = {
FirstDate: "2001-11-11T00:00:00Z"
SecondDate: "2002-22-22T00:00:00Z"
}

之后,我需要手动转换所有这些日期,然后才能使用它们:

var firstParsedDate = new Date(response.MyDate);
var secondParsedDate = new Date(response.MyDate);

有什么方法可以接收具有已解析日期的响应对象吗?如果没有的话可以一次性解析吗?

最佳答案

您可以创建一个递归函数,该函数将遍历响应对象并自动将任何与 ISO 8601 格式匹配的字符串转换为日期对象。像这样的东西应该有效:

function replaceIso8601StringsWithDates(obj)
{
if (obj !== null && typeof (obj) === "object" && !Array.isArray(obj)) {
for (var prop in obj) {
if (isIso8601String(obj[prop])) {
obj[prop] = new Date(obj[prop]);
}
else {
replaceIso8601StringsWithDates(obj[prop]);
}
}
}
}

var iso8601Regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,6})?(Z|[+-]\d{2}:\d{2})$/;
function isIso8601String(val) {
return typeof (val) === "string" && iso8601Regex.test(val);
}

然后在您的 success 处理程序中,您只需调用该函数:

function success(data, status, xhr) {
replaceIso8601StringsWithDates(data);
...
}

关于jquery - 自动转换 $.AJAX 响应中的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com