在浏覽幾個網頁時,發現有幾個網站在顯示時間時存在問題,比如今天是2009年1月4日,但是有的網站上卻赫然寫著今天是109年1月4日(這裡有個例子就是中國銀行的網站首頁)。這是一個奇怪的問題,可看這些網站的代碼,大致如下:
var today; today = new Date(); document.write(today.getYear());
從上面的代碼來看並不存在任何問題!但是當我們運行這段代碼時卻發現,在不同的浏覽器中返回的結果並不同:在Internet Explorer中返回的是2009,在Firefox、Chrome等浏覽器中返回的是109。由於目前使用Internet Explorer的用戶依然占居絕對多數,因為這個問題很難被發現。不過這足以說明IE和其它浏覽器對於getYear()的解釋並不一致(這也是Internet Explorer的一貫作風),但是問題究竟出現在哪裡呢?是浏覽器本身的問題還是Javascript出現了問題呢?我們姑且不去討論這個,我們先來看看getYear()的具體作用:
在非Internet Explorer浏覽器中,getYear()函數返回的是1900到1999間的兩位十進制數字,比如1999年,返回是99,這和實際年份正好相同;但是如果年份走出了1999,那麼就會一個3位的十進制數字,比如2000年,返回的就是100(99+1),2009返回的就是109(99+10);
如何解決這個問題?
很簡單,使用getFullYear()這個函數。
在所有的浏覽器中,getFullYear()返回的一個四位數的十進制數字。
因此,如果時間不超過9999年,那麼就會一直有效。
getYear()和getFullYear()的區別
幾點建議: