標籤:
原文:javascript Date對象
使用了JavaScript這麼久了,還沒有好好整理過,現在開始整理一下知識,鞏固一下。
先從Date對象開始。
Date對象用於處理時間,既然是一個對象,我們就可以使用new這個關鍵詞來得到這個對象,然後就可以使用Date對象本身所提供的方法。得到Date對象可以使用如下的方法
1,var objDate=new Date();//Date 對象自動使用當前的日期和時間作為其初始值。
2, var objDate=new Date(dateVal); //將給定的毫秒數轉換為使用的時間
3, var objDate=new Date((year, month, date[, hours[, minutes[, seconds[,ms]]]]));//指定具體的日期
較常用的是第一種方式和第三種方式。
下面來看一下上面所使用到的參數
dateVal
必選項。如果是數字值,dateVal 表示指定日期與 1970 年 1 月 1 日午夜間全球標準時間 的毫秒數。如果是字串,則 dateVal 按照 parse 方法中的規則進行解 析。dateVal 參數也可以是從某些 ActiveX(R) 對象返回的 VT_DATE 值。
year
必選項。完整的年份,比如,1976(而不是 76)。
month
必選項。表示的月份,是從 0 到 11 之間的整數( 1 月至 12 月)。
date
必選項。表示日期,是從 1 到 31 之間的整數。
hours
可選項。 如果提供了 minutes 則必須給出。表示小時,是從 0 到 23 的整數(午夜到 11pm)。
minutes
可選項。 如果提供了 seconds 則必須給出。表示分鐘,是從 0 到 59 的整數。
seconds
可選項。 如果提供了 milliseconds 則必須給出。表示秒鐘,是從 0 到 59 的整數。
ms
可選項。 表示毫秒,是從 0 到 999 的整數。
已經獲得了時間的對象,我們就可以使用這個對象,例如
var date=new Date();document.write(date);
上面代碼得到是原生時間,時間的現實為 Mon Mar 09 2015 15:43:04 GMT+0800 (中國標準時間),很明顯這樣的顯示格式不是我們想要的,所以我們就要用到Date這個對象的方法,來制定自己的時間顯示格式。
然而Date這個對象提供了很多的方法,常用的得到時間方法也就getYear(),getFullYear(),getMonth(),getDate(),getDay(),getHours(),getMinutes(),getSeconds(),getTime()這麼幾個,下面簡單介紹下這幾個方法
getYear() 返回Date對象中本地的年份,這個方法已經過時,之所以提供這個方法,是為了保持向後的相容性。請改用 getFullYear 方法。對於1900-1999這段時間而言,返回 的年份值是一個兩位元字的整數,它代表了所儲存的年份與 1900 年之間的差距。而對於其它的年份,傳回值是一個四位的整數。例如,1996 年的傳回值是 96,而 1825和 2025 年的傳回值則相應地為 1825 和 2025。
注意 對於 JScript 1.0 版,getYear 返回的值始終為 Date 對象中的年份與 1900 年之間的差距。例如,1899 年的傳回值是 -1, 而 2000 年的傳回值是 100。
var date = new Date();document.write(date.getYear());
顯示的結果是115,而不是我們所期待的2015
getFullYear() 要擷取用全球標準時間 (UTC)表示的年份值,請使用 getUTCFullYear 方法。getFullYear 方法以絕對數位形式返回年份值。例如,1976 年的傳回值就是 1976。這樣可以避免出現 2000 年問題,從而不會將 2000 年1月1日以後的日期與 1900 年1月1日以後的日期混淆起來。
var date = new Date();document.write(date.getFullYear());
顯示的結果就是我們所期待的2015
getMonth() 得到本地時間表中的月份值,getMonth方法返回一個處於 0 到 11 之間的整數,它代表 Date 對象中的月份值。這個整數並不等於按照慣例來表示月份的數字,而 是要比按慣例表示的值小 1。如果一個 Date 對象中儲存的時間值是 "Jan 5, 2015 08:47:00",那麼 getMonth()方法就會返回 0。
var date = new Date(); document.write(date.getMonth() + "</br>"); document.write(date.getUTCMonth() + "</br>"); var setDate = new Date("Jan 5, 2015 08:47:00"); document.write(setDate.getMonth() + "</br>");
上面的例子的顯示的結果是2 2 0,所以要顯示正確的月份要相應的加 1
getDate() 擷取目前時間月份中的幾號,傳回值是一個處於 1 到 31 之間的整數,它代表了相應的 Date 對象中的日期值。
var date = new Date();document.write(date.getDate()+ "</br>");
啟動並執行結果是 9
getDay() 表示目前時間日期中的周幾,getDay方法所返回的值是一個處於 0 到 6 之間的整數,它代表了一周中的某一天
| getDay()傳回值 |
對應的星期值 |
| 0 |
星期天 |
| 1 |
星期一 |
| 2 |
星期二 |
| 3 |
星期三 |
| 4 |
星期四 |
| 5 |
星期五 |
| 6 |
星期六 |
getHours() 方法返回一個處於 0 到 23 之間的整數,這個值表示從午夜開始計算的小時數。在下面兩種情況下此方法的傳回值是 0:時間在 1:00:00 am 之前,或者在建立 Date 對象的時候沒有將時間儲存在該對象中。而要確定究竟是哪種情況,唯一的方法就是進一步檢查分鐘和秒鐘值是否也是 0。如果這兩個值都是 0,那就幾乎可以 確定是沒有將時間值儲存到 Date 對象中。
getMinutes() 方法返回一個處於 0 到 59 之間的整數,傳回值就等於儲存在 Date 對象中的分鐘值。在下面兩種情況下傳回值為 0:在時鐘整點之後經過的時間少於一分鐘,或者 是在建立 Date 對象的時候沒有將時間值儲存到該對象中。而要確定究竟是哪種情況,唯一的方法是同時檢查小時和秒鐘值是否也是 0。如果這兩個值都是 0,那就 幾乎可以確定是沒有將時間值儲存到該 Date 對象中。
getSeconds() 方法返回一個處於 0 到 59 之間的整數,它表示了相應的 Date 對象中的秒鐘值。在下面兩種情況下,傳回值為 0。第一種情況是在當前的一分鐘中所經過的時間 少於一秒。另外一種情況是在建立 Date 對象時沒有將時間值儲存到該對象中。而為了確定究竟屬於哪種情況,唯一的方法是同時檢查小時和分鐘值是否也都是 0。如果這兩個值都是 0,那就幾乎可以確定是沒有將時間值儲存到 Date 對象中。
getTime() 方法返回一個整數值,這個整數代表了從 1970 年 1 月 1 日開始計算到 Date 對象中的時間之間的毫秒數。日期的範圍大約是 1970 年 1 月 1 日午夜的前後各 285,616 年。負數代表 1970 年之前的日期。
至於設定時間,我們可以使用 Date 對象提供的各種set方法,但是最簡單的則是在 new 對象的時候我們就可以初始化時間,例如:
var date = new Date("2016"); document.write(date.getFullYear()+ "</br>"); var setDate = new Date(); setDate.setFullYear(2016); document.write(setDate.getFullYear() + "</br>");
得到的結果都是相同的,都是2016,只是寫入的資料不同,new Date()填寫的是字串setFullYear()則是相應的整數。
下面給個結合數組顯示當前日期的時鐘
function showNowDate() { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); var isMonth = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"); var isDay = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); document.write("今天日期是:"+year+"年"+isMonth[month]+day+"日"+" "+isDay[date.getDay()]); }
顯示當前具體時間的時鐘
function showTimeMethod(){var date = new Date();var hour = date.getHours();var minuts = date.getMinutes();var seconds = date.getSeconds();document.getElementById("showTime").value = hour + ":" + minuts + ":" + seconds;setTimeout("showTimeMethod()",100);}
javascript Date對象