javascript實現(xiàn)獲取cookie過期時間的變通方法

字號:


    javascript和動態(tài)頁無法獲取cookie過期的時間,過期時間由瀏覽器管理,javascript和動態(tài)頁只能設(shè)置過期時間,無法通過document.cookie(javascript)或者Cookie.Expires(asp.net)屬性獲取到。
    代碼如下:
    <%@page language="C#" Debug="true"%>
    <script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
    HttpCookie hc = Request.Cookies["abc"];
    if (hc != null)
    {
    Response.Write(hc.Expires);//0001-1-1 0:00:00
    Response.End();
    }
    }
    </script>
    asp.net的cookie雖然有Expires屬性,但是Response.Write輸出Expires屬性得到的是0001-1-1 0:00:00(DateTime.MinValue),這個是由于瀏覽器并沒有發(fā)送cookie的過期時間給服務(wù)器,所以用DateTime.MinValue來填充cookie的Expires屬性。
    一定要獲取過期時間,需要通過另外一個cookie值來記錄對應(yīng)cookie的過期時間。如下:
    復(fù)制代碼 代碼如下:
    <script>
    var d = new Date();
    d.setHours(d.getHours() + 1); //1小時候過期
    document.cookie = 'testvalue=123;expires=' + d.toGMTString(); //存儲cookie值
    document.cookie = 'testexp=' + escape(d.toLocaleString()) + ';expires=' + d.toGMTString(); //存儲cookie過期時間,要獲取testvalue這個cookie的過期時間,通過獲取testexp這個cookie來實現(xiàn)
    </script>