摘要:類型中的類型使用自,國際協(xié)調(diào)時(shí)間年月日午夜零時(shí)開始經(jīng)過的毫秒數(shù)來保存日期。類型保存的日期能夠精確到年月日之前或之后的年。和的輸出因?yàn)g覽器不同而有所差異如年月日上午方法可用比較操作符來比較日期值。
Date 類型
ECMAScript 中的Date 類型使用自UTC(Coordinated Universal Time,國際協(xié)調(diào)時(shí)間)1970 年1 月1 日午夜(零時(shí))開始經(jīng)過的毫秒數(shù)來保存日期。Date 類型保存的日期能夠精確到1970 年1 月1 日之前或之后的185616年。
基本的三個(gè)方法Date.parse()、Date.UTC()和Date.now()三個(gè)方法。
首先,Date.parse()方法接收一個(gè)表示日期的字符串參數(shù),然后嘗試根據(jù)這個(gè)字符串返回相應(yīng)日期的毫秒數(shù)。通常將地區(qū)設(shè)置為美國的瀏覽器都接受下列日期格式:
“月/日/年”,如6/13/2004;
“英文月名 日,年”,如January 12,2004;
“英文星期 英文月名 日 年 時(shí):分:秒 時(shí)區(qū)”,如Tue May 25 2004 00:00:00 GMT-0700。
ISO 8601 擴(kuò)展格式 YYYY-MM-DDTHH:mm:ss.sssZ,如2004-05-25T00:00:00。只有兼容ECMAScript 5 的實(shí)現(xiàn)支持這種格式。
例如,要為2004年5月25日創(chuàng)建一個(gè)日期對(duì)象,可以使用下面的代碼:
var date = new Date(Date.parse("May 25 2004")); console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT)
也可以省略Date.parse()如:
var date = new Date("May 25 2004"); console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT) var date = new Date("11/16/2015"); console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT) var date = new Date("November 16, 2015"); console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT)
其次,Date.UTC()方法同樣也返回表示日期的毫秒數(shù),該方法的參數(shù)分別是年份、基于0的月份、月中的哪一天、24小時(shí)制的小時(shí)數(shù)、分鐘、秒以及毫秒數(shù)。如果沒有提供月中的天數(shù),則默認(rèn)為1;如果省略其他參數(shù),默認(rèn)為0.如:
var date = new Date(Date.UTC(2015, 10, 16)); document.write(date); //Mon Nov 16 2015 08:00:00 GMT+0800 (CST)
也可以縮寫成:
var date = new Date(2015, 10, 16, 10,10,10); console.log(date);//Mon Nov 16 2015 10:10:10 GMT+0800 (CST)
最后,Date.now()方法,返回表示調(diào)用這個(gè)方法時(shí)的日期和時(shí)間的毫秒數(shù)。如:
var date = new Date(Date.now()); console.log(date); //Mon Nov 16 2015 10:48:02 GMT+0800 (CST)
可以用這個(gè)方法來跟蹤代碼的工作,如:
var start = new Date(Date.now()); for (var i = 0; i < 100; i++){ for (var j = 0; j < 100; j++){ document.write("result is: " + (i + j) + "繼承的方法
"); } } var stop = new Date(Date.now()); document.write("
"); document.write((stop - start) + "
" + start + "
" + stop);
Date 類型重寫了toLocaleString()、toString()和valueOf()方法。toLocaleString()方法會(huì)按照與瀏覽器設(shè)置的地區(qū)相適應(yīng)的格式返回日期和時(shí)間。toString()方法則通常返回帶有時(shí)區(qū)信息的日期和時(shí)間。(toLocaleString()和toString()的輸出因?yàn)g覽器不同而有所差異)如:
var date = new Date(Date.now()); document.write(date.toLocaleString()); document.write(date.toString()); document.write(date.valueOf()); //2015年11月16日 GMT+8上午11:10:09 //Mon Nov 16 2015 11:10:09 GMT+0800 (CST) //1447643409908
valueOf()方法可用比較操作符來比較日期值。
var start = new Date(Date.parse("May 24,2015")); var stop = new Date(Date.parse("Nov 16,2015")); document.write(stop.valueOf() > start.valueOf()); //true日期格式化方法
Date 類型還有一些專門用于將日期格式化為字符串的方法,這些方法如下:
toDateString()(星期、月、日和年)
toTimeString()(時(shí)、分、秒和時(shí)區(qū))
toLocaleDateString()(星期、月、日和年)
toLocaleTimeString()(時(shí)、分、秒)
toUTCString()(UTC日期)
toGMTString()(不推薦)
舉個(gè)例子:
var date = new Date(Date.now()); document.write(date.toDateString()); //Mon Nov 16 2015 document.write(date.toTimeString()); //11:32:25 GMT+0800 (CST) document.write(date.toLocaleDateString()); //2015年11月16日 document.write(date.toLocaleTimeString()); //GMT+8上午11:33:16 document.write(date.toUTCString()); //Mon, 16 Nov 2015 03:33:37 GMT document.write(date.toGMTString()); //Mon, 16 Nov 2015 03:33:52 GMT日期和時(shí)間組件方法
下面的方法都是直接取得和設(shè)置日期值中特定部分的方法。另外,UTC 日期指得是在沒有時(shí)區(qū)偏差的情況下(將日期轉(zhuǎn)換為GMT 時(shí)間)的日期值。
完整數(shù)據(jù)見w3school-Date對(duì)象方法
在舉個(gè)例子好了,以秒為間隔更新顯示當(dāng)前時(shí)間:
var newP = document.createElement("p"); var newP_text = document.createTextNode(""); document.body.appendChild(newP); newP.appendChild(newP_text); setInterval(function(){ var time = new Date(Date.now()); var hours = time.getHours(); var minutes = time.getMinutes(); var seconds = time.getSeconds(); if (seconds < 10){ seconds = "0" + seconds; } if (hours < 10){ hours = "0" + hours; } if (minutes < 10){ minutes = "0" + minutes; } var current = "現(xiàn)在時(shí)間是:" + hours + "時(shí)" + minutes + "分" + seconds + "秒"; newP.firstChild.nodeValue = current; }, 1000) //現(xiàn)在時(shí)間是:12時(shí)06分53秒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86211.html
摘要:如很明顯可以看到,實(shí)際上是函數(shù)的局部變量。簡(jiǎn)單的說就是,復(fù)制給參數(shù),在函數(shù)內(nèi)部是局部變量,無論怎么變化,都不影響的變化。 ECMAScript 變量可能包含兩種不同數(shù)據(jù)類型的值:基本類型值和引用類型值。 基本類型和引用類型的值 基本類型值(String,Number,Boolean,Null,Undefined)指的是簡(jiǎn)單的數(shù)據(jù)段;引用類型值(保存在內(nèi)存中的對(duì)象)指的是那些可能由多個(gè)值...
摘要:類型關(guān)于引用類型的概念引用類型引用類型的值對(duì)象是引用類型的一個(gè)實(shí)例對(duì)象是某個(gè)特定引用類型的實(shí)例新對(duì)象用操作符后跟一個(gè)構(gòu)造函數(shù)來創(chuàng)建的如代碼這行代碼創(chuàng)建了引用類型的一個(gè)新實(shí)例,然后把該實(shí)例保存在了變量中。使用的構(gòu)造函數(shù)是。 Object 類型 關(guān)于引用類型的概念: 引用類型:引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例; 對(duì)象:是某個(gè)特定引用類型的實(shí)例; 新對(duì)象:用new 操作符后跟一個(gè)構(gòu)...
摘要:?jiǎn)误w內(nèi)置對(duì)象單體內(nèi)置對(duì)象就是開發(fā)人員不必顯式地實(shí)例化內(nèi)置對(duì)象,因?yàn)樗麄円呀?jīng)實(shí)例化了。前面的章節(jié)討論過了大多數(shù)內(nèi)置對(duì)象,還定義了兩個(gè)單體內(nèi)置對(duì)象和。 單體內(nèi)置對(duì)象 單體內(nèi)置對(duì)象就是開發(fā)人員不必顯式地實(shí)例化內(nèi)置對(duì)象,因?yàn)樗麄円呀?jīng)實(shí)例化了。前面的章節(jié)討論過了大多數(shù)內(nèi)置對(duì)象,ECMA-262 還定義了兩個(gè)單體內(nèi)置對(duì)象:Global 和Math。 Global 對(duì)象 所有在全局作用域中定義的屬性...
摘要:代碼約定可讀性以下地方需要進(jìn)行注釋函數(shù)和方法注釋參數(shù)代表什么,是否有返回值大段代碼描述任務(wù)的注釋復(fù)雜的算法變量和函數(shù)命名變量用名詞函數(shù)名用動(dòng)詞開頭等返回布爾值類型的函數(shù)用等合乎邏輯不用擔(dān)心太長(zhǎng)變量類型透明化方法一初始化,如下推薦方法二匈牙利 代碼約定 可讀性 以下地方需要進(jìn)行注釋: 函數(shù)和方法:注釋參數(shù)代表什么,是否有返回值; 大段代碼:描述任務(wù)的注釋; 復(fù)雜的算法; Hack 變...
摘要:類型每個(gè)函數(shù)都是類型的實(shí)例。如以上代碼可行,是因?yàn)樵诖a開始值錢,解析器就已經(jīng)通過一個(gè)名為函數(shù)聲明提升的過程,讀取并將函數(shù)聲明添加到執(zhí)行環(huán)境中去。也可同時(shí)使用函數(shù)聲明和函數(shù)表達(dá)式,但在瀏覽器中會(huì)出錯(cuò)。 Function 類型 每個(gè)函數(shù)都是Function 類型的實(shí)例。函數(shù)名實(shí)際上就是一個(gè)指向函數(shù)對(duì)象的指針,不會(huì)與某個(gè)函數(shù)綁定。 函數(shù)聲明方式創(chuàng)建Function,語法如下: functi...
閱讀 2613·2021-09-26 10:17
閱讀 3236·2021-09-22 15:16
閱讀 2145·2021-09-03 10:43
閱讀 3270·2019-08-30 11:23
閱讀 3667·2019-08-29 13:23
閱讀 1315·2019-08-29 11:31
閱讀 3699·2019-08-26 13:52
閱讀 1404·2019-08-26 12:22