最近中文字幕大全|熟女少妇精品一区二区|国产网红主播精品一区|日本一区二区精品理论电影|欧洲少妇无码精品视频在线|久久国产精品永久免费网站|人妻无码久久一区二区免费麻豆|国产日韩欧美一区二区在线高清

十二年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

詳細講解ECMAScript Date類型 parse()、UTC()使用方法

百恒網(wǎng)絡(luò) 2012-03-17 6351

ECMAScript Date類型 parse()、UTC()操作方法

ECMAScript中的Date類型是在早期Java中的java.util.Date類基礎(chǔ)上杓建的。為此,Date類型使用自UTC(Coordinated Universal Time,國際協(xié)調(diào)時間)1970年1月1日午夜(零時)開始經(jīng)過的毫秒數(shù)來保存日期。在使用這種數(shù)據(jù)存儲格式的條件下,Date類型保存的日期能夠精確到1970年1月1日之前或之后的285 616年。 要創(chuàng)建一個日期對象,使用new操作符和Date構(gòu)造函數(shù)即可,如下所示:

var now=new Date();

在調(diào)用Date構(gòu)造函數(shù)而不傳遞參數(shù)的情況下,新創(chuàng)建的對象自動獲得當前日期和時間。如果想根據(jù)特定的日期和時間創(chuàng)建日期對象,必須傳人表示該日期的毫秒數(shù)(即從UTC時間1970年1月1日午夜起至該日期止經(jīng)過的毫秒數(shù))。為了簡化這一計算過程,ECMAScript提供了兩個方法:Date.parse()和Date.UTC()。

其中,Date.parse)方法接收一個表示日期的字符串參數(shù),然后嘗試根據(jù)這個字符串返回相應(yīng)日期的毫秒數(shù)。ECMA-262沒有定義Date.parse()應(yīng)該支持哪種日期格式,因此這個方法的行為因?qū)崿F(xiàn)而異,而且通常是因地區(qū)而異。將地區(qū)設(shè)置為美國的瀏覽器通常都接受下列日期格式:

◎“月/日/年”,如6/13/2004;

◎“英文月名日,年”,如January 12,2004;

◎“英文星期幾英文月名日年時:分:秒時區(qū)”,如Tue May 25 2004 00:00:00 GMT-0700。

例如,要為2004年5月25日創(chuàng)建一個日期對象,可以使用下面的代碼:

var someDate=new Date (Date.parse( "May 25, 2004”));

如果傳入Date.parse()方法的字符串不能表示日期,那么它會返回NaN。實際上,如果直接將表示日期的字符串傳遞給Date構(gòu)造函數(shù),也會在后臺調(diào)用Date.parse()。換句話說,下面的代碼與前面的例子是等價的: var someDate=new Date( "May 25, 2004");

這行代碼將會得到與前面相同的日期對象。

南昌網(wǎng)站建設(shè)公司前端開發(fā)工程師提醒,Date對象及其在不同瀏覽器中的實現(xiàn)有許多奇怪的行為,其中有一種傾向是將超出范圍的值替換成當前的值,以便生成輸出.例如,在解析"January 32,2007"時有的瀏覽器會將其解釋為"Febunary 1 ,2007".而Opera則傾向于插入當前月份的當前日期,返回"January 當前日期,2007"。也就是說,如果在2007年9月21日運行前面的代碼,將會得到“January 21,2007”(都是21日).

Date .UTC()方法同樣也返回表示日期的毫秒數(shù),但它與Date.parse()在構(gòu)建值時使用不同的信息。Date.UTC()的參數(shù)分別是年份、基于0的月份(一月是0,二月是1,以此類推)、月中的哪一天(1到31)、小時數(shù)(0到23)、分鐘、秒以及毫秒數(shù)。在這些參數(shù)中,只有前兩個參數(shù)(年和月)是必需的。如果沒有提供月中的天數(shù),則假設(shè)天數(shù)為1;如果省略其他參數(shù),則統(tǒng)統(tǒng)假設(shè)為0。以下是兩個使用Date.UTC()方法的例子:

//GMT時間2000年1月1日午夜零時

var y2k=new Date (Date.UTC (2000,O));

//GMT時間2005年5月5日下午5:55:55

var allFives=new Date (Date.UTC (2005,4, 5, 17, 55, 55));

南昌做網(wǎng)站公司提示,這個例子創(chuàng)建了兩個日期對象。第一個對象表示GMT時間2000年1月1日午夜零時,傳人的值一個是表示年份的2000,一個是表示月份的O(即一月份)。因為其他參數(shù)是自動填充的(即月中的天數(shù)為1,其他所有參數(shù)均為0),所以結(jié)果就是該月第一天的午夜零時。第二個對象表示GMT時間2005年5月5日下午5:55:55,即使日期和時間中只包含5,也需要傳人不一樣的參數(shù):月份必須是4(因為月份是基于0的)、小時必須設(shè)置為17(因為小時以0到23表示),剩下的參數(shù)就很直觀了。

如同模仿Date.parse() -樣,Date構(gòu)造函數(shù)也會模仿Date.UTC(),但有一點明顯不同:日期和時間都基于本地時區(qū)而非GMT來創(chuàng)建。不過,Date構(gòu)造函數(shù)接收的參數(shù)仍然與Date.UTC()相同。

因此,如果第一個參數(shù)是數(shù)值,Date構(gòu)造函數(shù)就會假設(shè)該值是日期中的年份,而第二個參數(shù)是月份,以此類推。據(jù)此,可以將前面的例子重寫如下:

//本地時間2 000年1月1日午夜零時

var y2k=new Date(2000, 0);

//本地時間2005年5月5日下午5:55:55

var allFives=new Date (2005,4, 5,17, 55, 55);

以上代碼創(chuàng)建了與前面例子中相同的兩個日期對象,只不過這次的日期都是基于系統(tǒng)設(shè)置的本地時區(qū)創(chuàng)建的。

希望本文對廣大站長或從事企業(yè)網(wǎng)站建設(shè)公司的團隊有所幫助,如對此不太理解的,可以與南昌做網(wǎng)站公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗。


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×