DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript教程:網頁時間問題
JavaScript教程:網頁時間問題
編輯:關於JavaScript     

    在浏覽幾個網頁時,發現有幾個網站在顯示時間時存在問題,比如今天是2009年1月4日,但是有的網站上卻赫然寫著今天是109年1月4日(這裡有個例子就是中國銀行的網站首頁)。這是一個奇怪的問題,可看這些網站的代碼,大致如下:

  1. var today;   
  2. today = new Date();   
  3. 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()的區別

幾點建議:

  1. 使用多個浏覽器測試你的網站。這一點已經不用多說了,這裡指的多個浏覽器不僅僅是不同類別的浏覽器,更包括了浏覽器的不同版本;
  2. 獲得時間使用服務器端還是客戶端。在多數情況下,我建議直接在服務器端獲得時間然後再輸送到用戶浏覽器,這樣不會因為用戶機器時間設置不同而出現問題。但是這也存在一個問題,那就是不同時區內的訪問者可能看到的是同一個時間。如果你的網站訪問者人群相對固定,那麼建議直接在服務器端直接獲得時間(這不會浪費太多的解析時間)。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved