[英]Converting Date to JS Date Object
我有一個奇怪的日期格式,我不確定如何將其轉換為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返回:
2016年9月2日星期五06:13:12 GMT-0400(EDT)
但這應該給我:
2016年9月2日星期五10:13:12 GMT-0400(EDT)
看來時區轉換是翻倍之類的嗎? 有人知道怎么修這個東西嗎?
我假設這是自紀元以來的毫秒,偏移量為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數據,而不是破解使其適合前端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.