将日期转换为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