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個小時。