例如以下代碼:
程序代碼:
復(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>
在瀏覽器中打開之后,就會(huì)出現(xiàn)以下錯(cuò)誤:
引用內(nèi)容:
Microsoft JScript 運(yùn)行時(shí)錯(cuò)誤 錯(cuò)誤 ''800a000d''
類型不匹配
/temp/test.asp,行 6
這就意味著,我們按照類似在VBScript里的使用日期類型數(shù)據(jù)的方法在JScript不再行得通,但是我們總是需要在服務(wù)端中使用日期類型數(shù)據(jù)的,如果操作數(shù)據(jù)庫是采用參數(shù)化Command的方式的話,那么需要使用日期類型數(shù)據(jù)的地方會(huì)更多,總不能因?yàn)椴荒苁褂贸R?guī)方法來添加一個(gè)日期參數(shù)而把它放在SQL語句里吧。
幸好,JScript的設(shè)計(jì)者們考慮到了這一點(diǎn)。JScript在服務(wù)端使用時(shí),往往是做為ASP的另一種腳本語言,而JScript則是微軟在JavaScript上發(fā)展而來的微軟自己的東西,考慮到這一點(diǎn)也是應(yīng)該的。
在JScript中,解決這一問題的關(guān)鍵就是,Date類型的對(duì)象提供了一個(gè)函數(shù)getVarDate,它在JScript語言參考的說明如下:
引用內(nèi)容:
當(dāng)與 COM 對(duì)象、ActiveX® 對(duì)象或其他以 VT_DATE 格式接受和返回日期值的對(duì)象(例如 Visual Basic 和 VBScript)進(jìn)行交互時(shí),使用 getVarDate 方法。實(shí)際格式取決于地區(qū)設(shè)置,不隨 JScript 變化。
好了,到現(xiàn)在問題的解決方法也已經(jīng)浮出水面,就是使用getVarDate()函數(shù)將Date類型對(duì)象轉(zhuǎn)換成可以與ASP中內(nèi)置對(duì)象Response等可以交互的日期類型對(duì)象,那么將一開始的代碼修改如下:
程序代碼:
復(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>
再在瀏覽器打開這個(gè)測(cè)試頁面的時(shí)候,就不再會(huì)有錯(cuò)誤信息出現(xiàn),說明客戶端的Cookies成功寫入并設(shè)置了到期時(shí)間為2008年12月31日。
希望此文對(duì)你有所幫助。
您可能感興趣的文章:- js實(shí)現(xiàn)的日期操作類DateTime函數(shù)代碼
- Moment.js 不容錯(cuò)過的超棒Javascript日期處理類庫
- 用JavaScript將從數(shù)據(jù)庫中讀取出來的日期型格式化為想要的類型。
- 5個(gè)最佳的Javascript日期處理類庫分享
- javascript學(xué)習(xí)筆記(六) Date 日期類型
- javascript類型系統(tǒng)——日期Date對(duì)象全面了解
- javascript 封裝Date日期類實(shí)例詳解
- JavaScript日期類型的一些用法介紹
- js(jQuery)獲取時(shí)間的方法及常用時(shí)間類搜集
- JavaScript日期工具類DateUtils定義與用法示例