簡體   English   中英

解析JSON(ISO8601)日期字符串

[英]Parse JSON (ISO8601) date string

我可以使用以下方法創建一個JavaScript日期對象:

var d=new Date('2012-08-07T07:47:46Z');
document.write(d);

這將使用瀏覽器的時區寫入日期。 但我應該能夠(沒有'Z'):

var d=new Date('2012-08-07T07:47:46');
document.write(d);

返回的結果與上面相同,但是根據ISO8601標准,如果字符串不帶時區(例如+01:00)且不帶“ Z”,則應在本地時區中考慮日期。 因此,上面的第二個示例應將日期時間寫為上午7:47。

我從服務器獲取日期時間字符串,我想准確顯示該日期時間。 有任何想法嗎?

我發現此腳本運行良好。 它擴展了Date.parse方法。

https://github.com/csnover/js-iso8601/

Date.parse('2012-08-07T07:47:46');

但是,它不適用於new Date()構造函數。

沒錯,JavaScript不能與ISO8601配合使用。

使用此功能可將其轉換為所需的格式:

function ISODateString(d) {
  function pad(n){
    return n<10 ? '0'+n : n
  }
  return d.getUTCFullYear()+'-'
  + pad(d.getUTCMonth()+1)+'-'
  + pad(d.getUTCDate())+'T'
  + pad(d.getUTCHours())+':'
  + pad(d.getUTCMinutes())+':'
  + pad(d.getUTCSeconds())+'Z'
}
var d = new Date();
print(ISODateString(d));

摘自: Mozilla

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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