天天看点

一起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日期时间格式