gpt4 book ai didi

json - 在推送到 ko.observableArray 之前格式化 JSON 日期

转载 作者:行者123 更新时间:2023-12-04 17:50:06 26 4
gpt4 key购买 nike

我通过 AJAX 调用将 Values 插入 ko.observalbeArray,
我想在将它推送到我的 observableArray 之前将 JSON 返回日期格式化为“YYYY-MM-DD”。

我要转换的代码中的特定元素是: OrderTimeStamp: element.OrderTimeStamp
这是从服务器返回的日期示例:

/Date(1377200468203+0200)/



这是我的 AJAX 调用:
        $.ajax({
url: "/[URL TO API Method]/GetAllOrdersbyparm",
data: {Parm: ko.toJS(MyDataViewModel.SelectedParmater), Start: ko.toJS(MyDataViewModel.ParmStart), End: ko.toJS(MyDataViewModel.ParmEnd)},
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "JSON",
timeout: 10000,
success: function (Result) {
for (var i = 0; i < Result.d.length; i++) {
element = Result.d[i];
MyDataViewModel.OrderDetails.push({ OrderID: element.OrderID, OrderGUID: element.OrderGUID, OrderTimeStamp: element.OrderTimeStamp, OrderStatus: element.OrderStatus, QtyProductsOnOrder: element.QtyProductOnOrder, PaymentDate: element.PaymentDate });
}
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}
});

最佳答案

所以,这是一个 ASP.NET 特定的 Microsoft 日期“标准”。


http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
为什么应该像瘟疫一样避免它(1)。

在该格式中,第一个组件是自 UNIX 时代以来的 UTC 毫秒偏移量。
偏移量是本地时间,这与 JS 日期字符串表示中的时区偏移量相反。


var dateString = myDate.toJSON();

序列化一个用于发送的 JS 日期对象。

这样一个序列化的日期时间字符串,也是 UTC(又名 *Z*ulu),可以用来创建一个 Date 对象:
var myDate = new Date(dateString);

(1) 如果您需要支持这种旧的 ASP.NET 日期格式,您可以像这样将其转换为合适的 JS 日期(感谢 [Roy Tinker][2]):
myDate = new Date(parseInt("/Date(1377200468203+0200)/".substr(6)));

我不熟悉那个特定的日期时间符号。

那是国产的吗?

有相关文件吗?

如果不是,那么您在试图解释它时会遇到麻烦。

转换为 JSON 将使其成为 UTC 时间,并且有一些事情可以解释,除非以分钟(无双关语)细节记录。

所以这是我的答案:请确保您在规范性写作中具有上述定义。

现在让我闲聊一下:

我在这里进行了那个小练习......

http://en.wikipedia.org/wiki/ISO_8601将是基于日期时间表示法的一个很好的标准。

现在,您已经从服务器获得该格式,它看起来像是自纪元以来的毫秒时间值 ('1970-01-01T00:00:00Z'),(可能已经应用了时区偏移量!)结合HHMM 中的时区偏移字符串。

这有点可怕,因为这两个组件不能很好地混合。

评估为表达式 1377200468203+0200 将减去八进制! 200 毫秒!来自 1377200468203。这显然不是我们想要的。

在 ISO8601(该符号不是)中,此时区偏移量将从 UTC 开始,因此毫秒值已经应用了 2 小时 0 分钟偏移量。

现在,代码当然可以在与给定日期时间处于不同时区的机器上运行。

非常关键的问题是,这个毫秒的日期时间值是否确实有与 UTC 的偏移量。

在这种情况下,做
var dt = 新日期(1377200468203);
会错的。

如果它接近夏令时切换时间,仅减去以抵消它是不正确的。

关于json - 在推送到 ko.observableArray 之前格式化 JSON 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18421180/

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