js實現cookie有效期至當次日凌晨


 

實際開發中有要求用戶一些行為每天一次,次日開始重新回復功能,一般前端都是通過cookie來記住用戶的操作,然后進行判斷當日是否還有機會,這時候需要給存儲的cookie值一個有效期,讓次日自動失效,重新計數,代碼如下:

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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM