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

文章翻譯 文章翻譯
文章編號: 218964 - 檢視此文章適用的產品。
本文曾發行於 CHT218964
全部展開 | 全部摺疊

徵狀

在您使用 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 & "/" & dteYear
    End Function
    

狀況說明

這種行為是刻意設計的。

?考

有關 VBScript 和 JScript 的詳細資訊,請造訪 MSDN Scripting 網站,位址為:
http://msdn.microsoft.com/scri pting

屬性

文章編號: 218964 - 上次校閱: 2004年9月22日 - 版次: 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
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com