天天看點

一起Polyfill系列:讓Date識别ISO 8601日期時間格式

一、什麼是ISO 8601日期時間格式

  ISO 8601是國際标準化組織制定的日期時間表示規範,全稱是《資料存儲和交換形式·資訊交換·日期和時間的表示方法》。

  示例:

  1. 2014-12-12T00:00:00.000Z

  2. 2014-12-12T00:00:00.000+08

  3. 2014-12-12T00:00:00.000+0800

  4. 2014-12-12T00:00:00.000+08:00

  5. 2004-W17-3

  6. 0001-165

詳細說明請參考度娘:http://baike.baidu.com/link?url=Qr7NLClAyUHihOCl1DK6DQL_gMw5rk3euXdiz3zt6M9ORGFS2XBy7LHmcO2ID-iz

二、Javascript中實作的ISO 8601日期時間格式

  度娘後大家應該對ISO 8061有一定的了解了吧。ISO

8601的内容十分豐富,可惜Javascript僅僅實作一小部分而已,不過這一部分就夠我們用了。

  javascript支援的ISO 8061格式如下:

   1. 2014-12-12T00:00:00.000Z

 2. 2014-12-12T00:00:00.000+0800

   3. 2014-12-12T00:00:00.000+08:00

二、ES5中涉及ISO 8061日期時間格式的方法

 1.  Date.parse({String}

datetime) :接收ISO

8061和GMT的日期時間格式字元串(根據格式内容被識别為0時區或其他時區的日期時間),傳回入參所表示的0時區日期時間距離1970年1月1日的毫秒數。

   2.  Date.prototype.toISOString() :傳回目前Date類型對象0時區的ISO

8061日期時間格式字元串。形如:2014-12-12T00:00:00.000Z

   3.  new

Date({String} datetime) :構造函數的入參在ES5中新增接收ISO

8061格式字元串,其實内部就是調用 Date.parse({String}

datetime) 進行轉換。

   4.  Date.prototype.toJSON() :傳回目前Date類型對象0時區的ISO

8061日期時間格式字元串。形如:2014-12-12T00:00:00.000Z。

三、認識ES3下的Date類型

   1. 作為構造函數使用

   2. 作為函數使用

   3. 類成員

     3.1.  Date.parse({String}

datetime) :接收GMT的日期時間格式字元串(根據GMT格式内容被識别為0時區或其他時區的日期時間),傳回入參所表示的0時區日期時間距離1970年1月1日的毫秒數

     3.2.  Date.UTC(Y,M,d,H,m,s,ms) :設定0時區的日期時間,傳回入參所表示的0時區日期時間距離1970年1月1日的毫秒數

   4. 部分執行個體成員

  4.1.  Date.prototype.toGMTString() :傳回目前Date對象的GMT日期時間格式字元串(僅為了向後相容而已)

  4.2.  Date.prototype.toUTCString() :傳回目前Date對象的GMT日期時間格式字元串(建議使用該方法)

四、一起Polyfill

五、總結

  上述實作相對es5-shim來講考慮的地方仍有欠缺,這源于我對日期時間格式的了解不夠完整,是以請大家多多見諒。

原創文章,轉載請注明來自^_^肥仔John[]

本文位址: (本篇完)

如果您覺得本文的内容有趣就掃一下吧!捐贈互勉!

??

一起Polyfill系列:讓Date識别ISO 8601日期時間格式