Date类型使用自UTC1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。
创建日期对象的方法:
(1)获得当前日期和时间
var date = new Date();
(2)根据特定的日期和时间创建日期对象
传入的参数:从UTC午夜开始到该日期止经过的毫秒数。为此,提供两个方法Date.parse()和Date.UTC()。
1)Date.parse()方法:接收一个表示日期的字符串,根据这个字符串返回相应日期的毫秒数。若传入的字符串不能表示日期,则返回NaN。实际上,若直接将表示日期的字符串传给Date构造函数,也会在后台调用Date.parse()。
日期字符串的格式因地区而异,将地区设置为美国的浏览器接收下列格式:
---"月/日/年"
---"英文名月/日/,年"
---"英文名星期几缩写 英文名月 日 年 时:分:秒 时区"
---"YYYY-MM-DDTHH:mm:ss:sssZ"
var date1 = new Date(Date.parse("December 13,2016"));
var date2 = new Date(Date.parse("12/13/2016"));
var date3 = new Date(Date.parse("Tue December 13 2016 21:33:33 GMT-0700"));
var date4 = new Date(Date.parse("2016-12-13T21:33:33Z"));
等价于
var date1 = new Date("December 13,2016");
var date2 = new Date("12/13/2016");
var date3 = new Date("Tue December 13 2016 21:33:33 GMT-0700");
var date4 = new Date("2016-12-13T21:33:33Z");
2)Date.UTC()方法:参数分别是年份、基于0的月份、基于1的天数、基于0的小时数、基于0的分钟数、基于0的秒数、基于0的毫秒数,前两个参数(年和月)是必需的。若没有提供天数,则假设天数为1;若没有提供其他参数,则假设其他参数为0。若直接将表示日期的参数传给Date构造函数,也会在后台调用Date.UTC(),只是日期和时间都是基于本地时间而非UTC时间来创建。
var date1 = new Date(Date.UTC(2016, 11));//GMT时间2016年1月1日午夜零时
var date2 = new Date(Date.UTC(2016, 11, 13, 21, 33, 33));//GMT时间2016年12月13日下午9:33:33
var date3 = new Date(2016, 11);//本地时间2016年1月1日午夜零时
var date4 = new Date(2016, 11, 13, 21, 33, 33);//本地时间2016年12月13日下午9:33:33
Date.now()方法:返回表示调用这个方法时的日期和时间的毫秒数。
var startTime = Date.now();
......//执行若干操作
var endTime = Date.now();
alert(endTime - startTime);
等价于在不支持Date.now()方法的浏览器使用+操作符
var startTime = + new Date();
......//执行若干操作
var endTime = + new Date();
alert(endTime - startTime);