首页 > 代码库 > Date类型常用概念及方法总结(1)

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()-8*60*60*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个小时。

Date类型常用概念及方法总结(1)