欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決 JScript 中使用日期類型數(shù)據(jù)時出現(xiàn)類型錯誤的問題

 更新時間:2008年05月18日 21:21:25   作者:  
在服務(wù)端JScript中,有些時候需要使用日期類型的數(shù)據(jù),比如說設(shè)置一個cookie的到期時間,更新數(shù)據(jù)庫中的日期字段等。但是按照平常的方法來用js里的date類型數(shù)據(jù)時,運行時就會發(fā)生錯誤。
例如以下代碼:

程序代碼:
復(fù)制代碼 代碼如下:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<script language="JScript" runat="server"> 
Response.Cookies("xujiwei")("name") = "xujiwei"; 
Response.Cookies("xujiwei")("gender") = "male"; 
var expiredDate = new Date(2008, 11, 31); 
Response.Cookies("xujiwei").Expires = expiredDate; 
</script> 

在瀏覽器中打開之后,就會出現(xiàn)以下錯誤:

引用內(nèi)容:
Microsoft JScript 運行時錯誤 錯誤 ''800a000d''

類型不匹配

/temp/test.asp,行 6 

這就意味著,我們按照類似在VBScript里的使用日期類型數(shù)據(jù)的方法在JScript不再行得通,但是我們總是需要在服務(wù)端中使用日期類型數(shù)據(jù)的,如果操作數(shù)據(jù)庫是采用參數(shù)化Command的方式的話,那么需要使用日期類型數(shù)據(jù)的地方會更多,總不能因為不能使用常規(guī)方法來添加一個日期參數(shù)而把它放在SQL語句里吧。

幸好,JScript的設(shè)計者們考慮到了這一點。JScript在服務(wù)端使用時,往往是做為ASP的另一種腳本語言,而JScript則是微軟在JavaScript上發(fā)展而來的微軟自己的東西,考慮到這一點也是應(yīng)該的。

在JScript中,解決這一問題的關(guān)鍵就是,Date類型的對象提供了一個函數(shù)getVarDate,它在JScript語言參考的說明如下:

引用內(nèi)容:
當(dāng)與 COM 對象、ActiveX® 對象或其他以 VT_DATE 格式接受和返回日期值的對象(例如 Visual Basic 和 VBScript)進(jìn)行交互時,使用 getVarDate 方法。實際格式取決于地區(qū)設(shè)置,不隨 JScript 變化。

好了,到現(xiàn)在問題的解決方法也已經(jīng)浮出水面,就是使用getVarDate()函數(shù)將Date類型對象轉(zhuǎn)換成可以與ASP中內(nèi)置對象Response等可以交互的日期類型對象,那么將一開始的代碼修改如下:

程序代碼: 
復(fù)制代碼 代碼如下:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<script language="JScript" runat="server"> 
Response.Cookies("xujiwei")("name") = "xujiwei"; 
Response.Cookies("xujiwei")("gender") = "male"; 
var expiredDate = new Date(2008, 11, 31); 
Response.Cookies("xujiwei").Expires = expiredDate.getVarDate(); 
</script>

再在瀏覽器打開這個測試頁面的時候,就不再會有錯誤信息出現(xiàn),說明客戶端的Cookies成功寫入并設(shè)置了到期時間為2008年12月31日。

希望此文對你有所幫助。

相關(guān)文章

最新評論