当前位置:嗨网首页>书籍在线阅读

03-构造Date对象

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

15.2 构造Date对象

Date 对象有4种构造方式。构造时不传任何参数(就像已经看到的),它就只会返回一个表示当前日期的 Date 对象。也可以传入一个会被JavaScript解析的字符串,或者传入一个用毫秒来表示的、特定(本地)的日期。下面是一些例子:

// 以下所有的解释均是本地时间
new Date();                            // 当前日期
//注意,在JavaScript中月份是从0开始的: 0=1月, 1=2月, 以此类推
new Date(2015, 0);                     // 12:00 A.M., Jan 1, 1970 UTC
new Date(2015, 1);                     // 12:00:01 A.M., Jan 1, 1970 UTC
new Date(2015, 1, 14);                 // 5:00 P.M., May 16, 2016 UTC
new Date(2015, 1, 14, 13);             // 3:00 P.M., Feb 14, 2015
new Date(2015, 1, 14, 13, 30);         // 3:30 P.M., Feb 14, 2015
new Date(2015, 1, 14, 13, 30, 5);      // 3:30:05 P.M., Feb 14, 2015
new Date(2015, 1, 14, 13, 30, 5, 500); // 3:30:05.5 P.M., Feb 14, 2015
// 从Unix新纪元时间戳创建日期
new Date(0);                           // 12:00 A.M., Jan 1, 1969 UTC
new Date(1000);                        // 12:00:01 A.M., Jan 1, 1969 UTC
new Date(1463443200000);               // 5:00 P.M., May 16, 2016 UTC
// 使用负数日期获取早于Unix新纪元的日期
new Date(-365*24*60*60*1000);         // 12:00 A.M., Jan 1, 1969 UTC
// 解析日期字符串(默认使用当地时间)
new Date('June 14, 1903');        // 12:00 A.M., Jun 14, 1903 local time
new Date('June 14, 1903 GMT-0000');   // 12:00 A.M., Jun 14, 1903 UTC

如果运行这些例子,会发现所有结果都是当地时间。除非处在UTC(比如,延巴克图、马德里、格林威治)时区,那么返回的时间会与本例有所不同。这也成为使用 Date 对象的主要障碍:没有办法指定时区。其实,在JavaScript内部,时间都是以UTC存储的,然后根据当地时间(由计算机的操作系统决定)进行格式化。由于JavaScript起初是一门基于浏览器的脚本语言,这种设定时间的方式历来都是“正确的做法”。当你用Date的时候,你可能希望日期显示为用户所在的时区。然而,由于网络全球化的普及,同时Node使JavaScript在服务端得到应用,更加健全的时区处理将会很有用。