簡體   English   中英

將Date轉換為JS Date對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM