您目前已離線,請等候您的網際網路重新連線

PRB:VBScript 日期和時間格式隨著登入使用者而變化

本文曾發行於 CHT218964
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。
徵狀
在您使用 VBScript Now()、Date() 或 Time() 函數時,日期和時間格式會根據登入電腦的使用者不同而有所變化。這點對於使用 Active Server Page (ASP) 開發,並以日期或時間格式為關鍵的伺服器應用程式,帶來一個問題,也就是當不同使用者、或沒有使用者登入時,日期和時間格式都會發生變化。

例如,某個應用程式可能要求您用四位數格式,而非兩位數格式來顯示世紀(例如,1999 而非 99)。某個使用者登入到 IIS 伺服器,並於 [控制台] 的 [區域設定] 下,將 [日期] 格式設定為使用四位數年份(例如,mm/dd/yyyy)。該使用者透過瀏覽器開啟 Active Server Page 時,年份將以四位數顯示。而使用者從電腦上登出,然後再從瀏覽器中開啟 Active Server Page 時,年份卻又變成兩位數顯示。
發生的原因
VBScript 函數 Now()、Date() 和 Time() 的格式必須依賴電腦的區域設定。而區域設定會根據登入電腦的使用者(或沒有使用者登入)而產生變化。結果造成無法確保日期和時間格式的一致性。
解決方案
要確保日期與時間格式一致,請選用下列方法:

  • 使用 JScript,因為它的日期和時間格式不依賴區域設定。
  • 使用 Now()、Date() 和 Time() 之外的其它函數顯示日期和時間。因為其它日期和時間函數(例如,Day()、Month()、Year() 等)不需要依賴區域設定,其格式也不會隨著登入電腦的使用者不同而有所變化。例如,下面的函數,MyDate(),會永遠以 mm/dd/yyyy 格式傳回日期:
    Function MyDate()  dteCurrent = Date()  dteDay = Day(CurrentDate)  dteMonth = Month(CurrentDate)  dteYear = Year(CurrentDate)  MyDate = dteMonth & "/" & dteDay & "/" & dteYearEnd Function
狀況說明
這種行為是刻意設計的。
参考
有關 VBScript 和 JScript 的詳細資訊,請造訪 MSDN Scripting 網站,位址為:
內容

文章識別碼:218964 - 最後檢閱時間:09/22/2004 07:59:43 - 修訂: 2.1

Microsoft Active Server Pages 4.0, Visual Basic Scripting 版 5.0, Visual Basic Scripting 版 3.0, Visual Basic Scripting 版 4.0

  • kbgrpasp kbscript kbtshoot KB218964
意見反應