Date类型常用概念和艺术总结(1)

 

Date类型使用UTC(国际协调时)1970年1月1日零时始于通过的毫秒数来保存时。

(1)创建当前日期

         
调用Date不传递参数的事态下,创建的初目标活动取当前日期及岁月(本地时区)。

         

  var now=new Date();

(2)创建特定的日期和时

         
如果只要创特定的日子对象,必须传入表示该日期的毫秒数(即由UTC时间1970年1月1日届该日期的毫秒数)。为简化这等同历程,ECMAScript提供了零星个道:Date.parse()和Date.UTC();

          

var time1=new Date(Date.parse("May 25,2004"));
var time2=new Date(Date.UTC(2004,4,25));

time1和time2分头使用Date.parse()和Date.UTC()构建特定日期对象,它们有如下区别:

  • time1为当地时区的2004年5月25日00:00,而time2为GMT时间(见注释)的2004年5月25日00:00(北京时间比GMT时间抢8单小时,故time2为北京时间2004年5月24日 16:00);

    alert(time1.getTime()==time2.getTime());//false
    alert(time1.getTime()==time2.getTime()-86060*1000);//true

  • 传扬Date.parse()方法的为字符串,而传播Date.UTC()方法的也罢代表日期或时刻之数值参数;(具体格式见书p99);

  • Date.UTC()方法中的月度也基于0的月(即一月是0,二月凡是1,一糟糕接近推);

其实,直接以一定日期传入Date构造函数,也会于后台调用Date.parse()或Date.UTC(),也就是说以下代码和眼前的事例是齐价格的:

var time1=new Date("May 25,2004");
var time2=new Date(2004,4,25);

用留意的凡,此时日期及日还是因本地时区而未是GMT时间,即time1和time2同样表示当地时间之2004年5月25日00:00;

alert(time1.getTime()==time2.getTime());//true

 

注释:格林尼治标准时间(GMT,旧译“格林威治平均日”或“格林威治正规时间”)是恃在伦敦郊区的皇家格林尼治天文台的规范日,因为本初子午线受定义在经过那里的经线。北京时间比GMT时间不久8独小时。