Date 对象的构造函数通过可选的参数,可生成表示过去、现在和将来的Date 对象。
其构造方式有四种,分别如下:var MyDate=new Date();
var MyDate=new Date(milliseconds);
var MyDate=new Date(string);
var MyDate=new Date(year,month,day,hours,minutes,seconds,milliseconds);
第一句生成一个空的Date 对象实例MyDate,可在后续操作中通过Date 对象提供的诸多方法来设定其时间,如果不设定则代表客户端当前日期;
在第二句的构造函数中传入唯一参数milliseconds,表示构造与GMT标准零点相距milliseconds毫秒的Date 对象实例MyDate;
第三句构造一个用参数string 指定的Date 对象实例MyDate,其中string 为表示期望日期的字符串,符合特定的格式;
第四句通过具体的日期属性,如year、month 等构造指定的Date对象实例MyDate。
考察如下的代码:[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html140/strict.dtd”>
[/code]程序运行结果如图所示。
该程序分为几步:
(1)通过第四种构造方式构造代表2007 年9 月1 日17 点8 分20 秒100 毫秒的Date 对象实例MyDate4;
(2)通过第一种构造方式构造空的Date 对象实例MyDate1,并通过对象拷贝的方法,将MyDate4 复制到MyDate1;
(3)通过Date 对象的getTime()方法返回MyDate4 表示的时间与GMT 标准零点之间的毫秒数,然后将此毫秒数作为参数通过第二种构造方式构造Date 对象实例MyDate2;
(4)通过Date 对象的toString()方法返回表示Date 对象实例MyDate4 代表的时间的字符串,然后将此字符串作为参数通过第三种构造方式构造Date 对象实例MyDate3。
通过程序结果可知,上述四种构造 Date 对象实例的方式都能构造同样的日期对象。
但上述的四种构造方法都是以当地时间创建新日期,JavaScript 提供了UTC()方法按世界时间创建日期,语法如下:date.UTC(year,month,day,hours,minutes,seconds,millseconds);
UTC()方法的参数意义与上述的第四种方法完全相同,只不过构建的对象基于UTC 世界时间而已,如下的代码显示两者的不同之处:var MyDate=new Date();
msg+="本地时间:"+MyDate.toString()+"\n";
msg+="世界标准时间:"+MyDate.toUTCString();
document.write(msg);
上述代码的运行后,返回:
本地时间:Fri Aug 3 21:21:43 UTC+0800 2007
世界标准时间:Fri, 3 Aug 2007 13:21:43 UTC
可以看出两者之间的差异,本地时间(东8 区:北京时间)与UTC 世界标准时间之间相差8 小时,且输出字符串格式不同。
注意:欧美时间制中,星期及月份数都从 0 开始计数。如星期中第0 天为Sunday,第7 天为Saturday;月份中的第0 月为January,第11 月为December。
但月的天数从1 开始计数。