请不要从ajax调用到javascript日期和解析DateTime格式从Ajax传递到“dd/MM/yyyy”的ASP.NET Parse DateTime结果重复,我已经仔细阅读了。但我的问题是差异。
我从下面的 ajax 加载了来自 asp.net 的数据。
Datetime in c#: "2019-05-04"
The result in ajax is: "/Date(1556895600000+0900)/"
可以看到结果自动将时间UTC偏移量添加到DateTime,不知道为什么。
如何在上面的 javascript 与数据中转换为 DateTime?
var d = new Date(("/Date(1556895600000+0900)/").match(/\d+/)[0] * 1)
console.log(d)
您可以看到:结果“2019-05-03T15:00:00.000Z”,但我期望结果“2019-05-04”。我怎样才能做到这一点?
看,我不是约会专家,但以下内容对我来说很有说服力
const parse = str => {
let [_, timestamp, offsetHours, offsetMinutes] = str.match(/(\d+)([+-]\d\d)(\d\d)/).map(Number);
let date = new Date(timestamp);
date.setHours(date.getHours() + offsetHours);
date.setMinutes(date.getMinutes() + offsetMinutes);
return date;
}
console.log(
parse("/Date(1556895600000+0900)/")
.toJSON()
)
console.log(
parse("/Date(1556895600000-0700)/")
.toJSON()
)
这是一个 ES3 版本,以防它在旧浏览器中不起作用(正如 OP 在评论中所说)
function parse(str) {
var matches = str.match(/(\d+)([+-]\d\d)(\d\d)/).map(Number);
var timestamp = matches[1];
var offsetHours = matches[2];
var offsetMinutes = matches[3];
var date = new Date(timestamp);
date.setHours(date.getHours() + offsetHours);
date.setMinutes(date.getMinutes() + offsetMinutes);
return date;
}
console.log(
parse("/Date(1556895600000+0900)/")
.toJSON()
)
console.log(
parse("/Date(1556895600000-0700)/")
.toJSON()
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句