gpt4 book ai didi

javascript - 如何正确格式化从 webservice c# 返回的日期

转载 作者:行者123 更新时间:2023-11-28 18:30:02 26 4
gpt4 key购买 nike

在我的 .js 文件中,我调用 C# Web 服务。

function getDetailsFromDb(id_mac, id_instance) {
$.ajax({
type: "POST",
url: "webMethods/GetData.asmx/getServicesById",
dataType: "json",
data: JSON.stringify({
idMacchina: id_mac,
idIstanza: id_instance
}),
contentType: "application/json; charset=utf-8",
success: function (msg) {
var itemsLoaded = msg.d;
},
error: function (err) {
alert(err);
}
});

此函数返回我从数据库中获取的一组对象。这些字段之一返回日期,格式如下:

/Date(1467878700750)/

现在,我需要从该字符串中获取日、月、年、小时、分钟、秒和毫秒。我怎样才能得到这些信息?

提前致谢

最佳答案

这看起来像是自大纪元(格林尼治标准时间 1970 年 1 月 1 日午夜)以来的毫秒数。在 JavaScript 中,您可以创建 Date实例如下:

  1. 从字符串中分离数字
  2. 将其转换为数字
  3. 然后使用 new Date ,它接受自纪元以来的毫秒数:

例如,

var theString = "/Date(1467878700750)/";
var theNumber = +theString.match(/\/Date\((\d+)\)\//)[1];
console.log(theNumber);
var dt = new Date(theNumber);
console.log(dt.toString());

如果您愿意,可以在转换 JSON 时使用 reviver 函数转换 JSON 中的全部内容:

var rexDateString = /^\/Date\((\d+)\)\/$/;
function dateHandlingReviver(k, v) {
var match;
if (typeof v === "string") {
match = v.match(rexDateString);
if (match) {
return new Date(+match[1]);
}
}
return v;
}

var json = '{"date1":"/Date(1467878700750)/","obj":{"date2":"/Date(1467871700750)/"}}';

var result = JSON.parse(json, dateHandlingReviver);
console.log(result);

(请注意,上面控制台中显示的这些日期的 "2016-07-07T08:05:00.750Z" 正是 Stack Snippets 控制台显示 Date 对象的方式。)

您可以通过设置 dataType: "text" 来更改您的查询,以告诉 jQuery 为您解析它。而不是dataType: "json" ,然后使用 JSON.parse 自己解析它与那个复活器。

关于javascript - 如何正确格式化从 webservice c# 返回的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242329/

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