1. Date类型使用自UTC(国际协调时间)---即1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。
2. Date类型的对象:new Date();
该构造函数如果不传递参数,新创建的对象自动获得当前日期和时间。
如果想根据特定的日期和时间创建日期对象,必须传入该日期的毫秒数(从UTC时间1970年1月1日午夜(零时)起至该日期止经过的毫秒数)。
ECMAScript提供了两种方法:Date.parse() Date.UTC()
① Date.parse():接收一个表示日期的字符串参数,返回相应日期的毫秒数。 如果传入的参数不能表示日期,会返回NaN。传入的参数的格式因地区和实现行为而异。
如果直接将表示日期的字符串直接传递给Date构造函数,那么也会在后台调用Date.parse()。
new Date(Date.parse("May 25, 204")); -----等价于new Date("May 25, 2014");
上面的日期对象的结果为Sun May 25 2014 00:00:00 GMT+0800 (中国标准时间)
② Date.UTC():接收一个表示日期的字符串参数,返回相应日期的毫秒数。传入的参数为年份,基于0的月份(0-11),月中的哪一天(1-31),小时数(0-23),秒,毫秒数。---年份和月份是必选。其余省略参数天数为1,小时、秒、毫秒数为0。
new Date(Date.UTC(2000, 0)); 2000年1月1日0点0分0秒----等价于new Date(2000, 0);
③ Date.now():返回调用该方法时的日期和时间的毫秒值。
var start = Date.now();
//执行一些操作
var stop = Date.now(); //二者的差值为时间间隔
注意:如果不支持该函数,则可以使用+操作符获取对象的时间戳。
var start = +new Date();
//执行一些操作
var stop = +new Date(); //二者的差值为时间间隔
3. 继承的方法:Date类型重写了toLocaleString() toString() valueOf()方法。
这里的valueOf()方法不返回字符串,而是返回日期的毫秒值。
var d1 = new Date(2007, 0, 1);
var d2 = new Date(2007, 1 ,1);
alert(d1 < d2); //true 自动调用valueOf()函数