将日期转换为JS日期对象

我有一个奇怪的格式的日期,我不知道如何把它变成一个JS日期对象。 我相信像moment.js这样的库有这样的工具,但我并不想仅仅为这个转换加载整个库。 这里是数据:

/日期(1472586116588-0400)/

编辑:我已经更新后端代码,以在JSON中使用字符串而不是C#日期时间,然后按照以下方式转换DateTime:

Date.ToString("s");

这给了我这个字符串:2016-09-02T10:13:12

所以现在我的问题是,如果我做var date = new Date(“2016-09-02T10:13:12”); javascript回馈:

Fri Sep 02 2016 06:13:12 GMT-0400(美国东部时间)

但它应该给我:

周五9月02 2016 10:13:12 GMT-0400(美国东部时间)

它看起来时区转换正在翻倍或什么? 有人知道怎么修这个东西吗?


我假设这是自时代以来的毫秒,用hhmm抵消,所以我会这样做:

var input = "/Date(1472586116588-0400)/";
var [match, msec, offset] = input.match(/((d+)([+-]d+))/);
var offsetHours = Math.floor(offset / 100);
var offsetMinutes = offset - offsetHours * 100;
var date = new Date(msec - offsetHours * 60 * 60 * 1000 - offsetMinutes * 60 * 1000);

console.log(date);

通过将后端数据更改为在ISO 8601格式中替代C#DateTime中的字符串来修复,如下所示:

date.ToString( “O”);

这可以通过使用新的Date({string here})简单地转换为javascript日期;

感谢James Thorpe建议在后端修复JSON数据,而不是在前端修改JSON数据。

链接地址: http://www.djcxy.com/p/18645.html

上一篇: Converting Date to JS Date Object

下一篇: Javascript date string passed to Date constructor gives strange results