摘要:類型中的類型使用自,國際協調時間年月日午夜零時開始經過的毫秒數來保存日期。類型保存的日期能夠精確到年月日之前或之后的年。和的輸出因瀏覽器不同而有所差異如年月日上午方法可用比較操作符來比較日期值。
Date 類型
ECMAScript 中的Date 類型使用自UTC(Coordinated Universal Time,國際協調時間)1970 年1 月1 日午夜(零時)開始經過的毫秒數來保存日期。Date 類型保存的日期能夠精確到1970 年1 月1 日之前或之后的185616年。
基本的三個方法Date.parse()、Date.UTC()和Date.now()三個方法。
首先,Date.parse()方法接收一個表示日期的字符串參數,然后嘗試根據這個字符串返回相應日期的毫秒數。通常將地區設置為美國的瀏覽器都接受下列日期格式:
“月/日/年”,如6/13/2004;
“英文月名 日,年”,如January 12,2004;
“英文星期 英文月名 日 年 時:分:秒 時區”,如Tue May 25 2004 00:00:00 GMT-0700。
ISO 8601 擴展格式 YYYY-MM-DDTHH:mm:ss.sssZ,如2004-05-25T00:00:00。只有兼容ECMAScript 5 的實現支持這種格式。
例如,要為2004年5月25日創建一個日期對象,可以使用下面的代碼:
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()方法同樣也返回表示日期的毫秒數,該方法的參數分別是年份、基于0的月份、月中的哪一天、24小時制的小時數、分鐘、秒以及毫秒數。如果沒有提供月中的天數,則默認為1;如果省略其他參數,默認為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()方法,返回表示調用這個方法時的日期和時間的毫秒數。如:
var date = new Date(Date.now()); console.log(date); //Mon Nov 16 2015 10:48:02 GMT+0800 (CST)
可以用這個方法來跟蹤代碼的工作,如:
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()方法會按照與瀏覽器設置的地區相適應的格式返回日期和時間。toString()方法則通常返回帶有時區信息的日期和時間。(toLocaleString()和toString()的輸出因瀏覽器不同而有所差異)如:
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()(時、分、秒和時區)
toLocaleDateString()(星期、月、日和年)
toLocaleTimeString()(時、分、秒)
toUTCString()(UTC日期)
toGMTString()(不推薦)
舉個例子:
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日期和時間組件方法
下面的方法都是直接取得和設置日期值中特定部分的方法。另外,UTC 日期指得是在沒有時區偏差的情況下(將日期轉換為GMT 時間)的日期值。
完整數據見w3school-Date對象方法
在舉個例子好了,以秒為間隔更新顯示當前時間:
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 = "現在時間是:" + hours + "時" + minutes + "分" + seconds + "秒"; newP.firstChild.nodeValue = current; }, 1000) //現在時間是:12時06分53秒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/86211.html
摘要:如很明顯可以看到,實際上是函數的局部變量。簡單的說就是,復制給參數,在函數內部是局部變量,無論怎么變化,都不影響的變化。 ECMAScript 變量可能包含兩種不同數據類型的值:基本類型值和引用類型值。 基本類型和引用類型的值 基本類型值(String,Number,Boolean,Null,Undefined)指的是簡單的數據段;引用類型值(保存在內存中的對象)指的是那些可能由多個值...
摘要:類型關于引用類型的概念引用類型引用類型的值對象是引用類型的一個實例對象是某個特定引用類型的實例新對象用操作符后跟一個構造函數來創建的如代碼這行代碼創建了引用類型的一個新實例,然后把該實例保存在了變量中。使用的構造函數是。 Object 類型 關于引用類型的概念: 引用類型:引用類型的值(對象)是引用類型的一個實例; 對象:是某個特定引用類型的實例; 新對象:用new 操作符后跟一個構...
摘要:單體內置對象單體內置對象就是開發人員不必顯式地實例化內置對象,因為他們已經實例化了。前面的章節討論過了大多數內置對象,還定義了兩個單體內置對象和。 單體內置對象 單體內置對象就是開發人員不必顯式地實例化內置對象,因為他們已經實例化了。前面的章節討論過了大多數內置對象,ECMA-262 還定義了兩個單體內置對象:Global 和Math。 Global 對象 所有在全局作用域中定義的屬性...
摘要:代碼約定可讀性以下地方需要進行注釋函數和方法注釋參數代表什么,是否有返回值大段代碼描述任務的注釋復雜的算法變量和函數命名變量用名詞函數名用動詞開頭等返回布爾值類型的函數用等合乎邏輯不用擔心太長變量類型透明化方法一初始化,如下推薦方法二匈牙利 代碼約定 可讀性 以下地方需要進行注釋: 函數和方法:注釋參數代表什么,是否有返回值; 大段代碼:描述任務的注釋; 復雜的算法; Hack 變...
摘要:類型每個函數都是類型的實例。如以上代碼可行,是因為在代碼開始值錢,解析器就已經通過一個名為函數聲明提升的過程,讀取并將函數聲明添加到執行環境中去。也可同時使用函數聲明和函數表達式,但在瀏覽器中會出錯。 Function 類型 每個函數都是Function 類型的實例。函數名實際上就是一個指向函數對象的指針,不會與某個函數綁定。 函數聲明方式創建Function,語法如下: functi...
閱讀 2607·2021-09-26 10:17
閱讀 3230·2021-09-22 15:16
閱讀 2142·2021-09-03 10:43
閱讀 3268·2019-08-30 11:23
閱讀 3666·2019-08-29 13:23
閱讀 1310·2019-08-29 11:31
閱讀 3695·2019-08-26 13:52
閱讀 1401·2019-08-26 12:22