设置cookie过期时间代码:
function setCookie(name, value, day) {
// 拼接name和value并转码
let cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value)
if (day) {
var oDate = new Date()
// 设置过期时间以秒为单位
oDate.setSeconds(oDate.getSeconds() + day)
// 将过期时间拼接到cookie中
cookieText += ';expires=' + oDate
}
// 设置cookie
document.cookie = cookieText
}
// 调用函数,设置过期时间为15s后
setCookie('Wname','wang',15)
其中,我设置的过期时间是15秒之后,在控制台中查看
可以看到过期时间已经设置成功,但是到了15s之后,cookie并没有消失
其实是因为中国标准时间比世界标准时间早8小时,我们给cookie设置的过期时间是中国标准时间,但是浏览器中认为是世界标准时间,但是控制台中是看不出来的,但实际上是到8h15s后才过期,所以我们需要将8小时的时间减掉
function setCookie(name, value, day) {
let cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value)
if (day) {
var oDate = new Date()
// t1为当前时间的时间戳
var t1 = oDate.getTime()
// 将当前时间减掉8小时的时间
var t2 = t1 - 8 * 1000 * 60 * 60
// 将减掉8小时后的时间设置给oDate
oDate.setTime(t2)
oDate.setSeconds(oDate.getSeconds() + day)
cookieText += ';expires=' + oDate
}
document.cookie = cookieText
}
setCookie('Wname', 'wang', 15)
这样到15s后cookie就消失了