js實現cookie有效期至當第二天凌晨

 

實際開發中有要求用戶一些行爲天天一次,第二天開始從新回覆功能,通常前端都是經過cookie來記住用戶的操做,而後進行判斷當日是否還有機會,這時候須要給存儲的cookie值一個有效期,讓第二天自動失效,從新計數,代碼以下:javascript

cookie = {
        /**
         * 獲取cookie
         */
        get: function (name) {
            var cookieName = encodeURIComponent(name) + '=',
                cookieStart = document.cookie.indexOf(cookieName),
                cookieValue = null;
            if (~cookieStart) {
                var cookieEnd = document.cookie.indexOf(';', cookieStart);
                if (!~cookieEnd) {
                    cookieEnd = document.cookie.length;
                }
                cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
            }
            return cookieValue;
        },
        /**
         * 設置cookie
         */
        set: function (name, value, expires, path, domain, secure) {
            var cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
            expires instanceof Date && (cookie += '; expires=' + expires.toGMTString());
            path && (cookie += '; path=' + path);
            domain && (cookie += '; domain=' + domain);
            secure && (cookie += '; secure');
            document.cookie = cookie;
        },
        /**
         * 刪除cookie
         * javascript裏,沒有提供直接刪除cookie的api,只有經過將過時時間,
         * 設置成過去的某個時間,讓cookie過時,來刪除。
         */
        del: function (name, path, domain, secure) {
            this.set(name, '', new Date(0), path, domain, secure);
        }
    }

 

下面是存儲cookie並設置有效期:前端

//cookie過時時間,第二天凌晨
var expires = new Date(new Date(new Date().getTime() + 30*24 * 60 * 60 * 1000).setHours(0, 0, 0, 0));

//須要存儲的cookie值
var value='100'
cookie.set("key", value, expires);
相關文章
相關標籤/搜索