美文网首页
设置cookie过期时间

设置cookie过期时间

作者: 吃肉肉不吃肉肉 | 来源:发表于2021-06-01 11:29 被阅读0次

JS设置Cookie过期时间

写cookies

function setCookie(name,value)
{
var Days = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

读取cookies

function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}

删除cookies

function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null) document.cookie= name + “=”+cval+";expires="+exp.toGMTString();
}

自定义过期时间,那么把上面的setCookie 函数换成下面两个函数就ok;

    // 存储cookie
    setCookie(name, value, time) {
      var strsec = this.getsec(time)
      var exp = new Date()
      exp.setTime(exp.getTime() + strsec * 1)
      document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString()
    },
    getsec(str) {
      var str1 = str.substring(1, str.length) * 1
      var str2 = str.substring(0, 1)
      if (str2 === 's') {
        return str1 * 1000
      } else if (str2 === 'h') {
        return str1 * 60 * 60 * 1000
      } else if (str2 === 'd') {
        return str1 * 24 * 60 * 60 * 1000
      }
    },
    //这是有设定过期时间的使用示例:
    //s20是代表20秒
    //h是指小时,如12小时则是:h12
    //d是天数,30天则:d30
    //this.setCookie('dataPassword', this.dataPassword, 'd15')

    // 判断是否存在cookie
    getCookie(name) {
      var arr = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
      var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
      if (document.cookie.match(reg)) {
        arr = document.cookie.match(reg)
        return unescape(arr[2])
      } else {
        return null
      }
    },

相关文章

网友评论

      本文标题:设置cookie过期时间

      本文链接:https://www.haomeiwen.com/subject/fdswsltx.html