方法一:当天第一次访问的时候保存cookie,过期时间为当天24:00.
chrome和其他浏览器存在时差问题。firefox某些情况调试工具那里不会删除过期cookie。
function setCookie(name, value) {
const curDate = new Date();
const curTamp = curDate.getTime();
const curDay = curDate.toLocaleDateString();
let curWeeHours = new Date(curDay).getTime() - 1;
if (window.navigator.userAgent.indexOf('Chrome') !== -1) {
curWeeHours += 8 * 60 * 60 * 1000;
}
const passedTamp = curTamp - curWeeHours;
const leftTamp = 24 * 60 * 60 * 1000 - passedTamp;
const leftTime = new Date();
leftTime.setTime(leftTamp + curTamp);
document.cookie = `${name}=${value};expires=${leftTime.toGMTString()}`;
}
function getCookie(name) {
const result = document.cookie.replace(/\s/g, '');
const resultArr = result.split(';');
for (let i = 0; i < resultArr.length; i += 1) {
const nameArr = resultArr[i].split('=');
if (nameArr[0] == name) {
return nameArr[1];
}
}
return '';
}
function isFirstVisitOfTody() {
const firstVisitOfTody = getCookie('firstVisitOfTody');
if (!firstVisitOfTody) {
$('.js-TipBox').removeClass('hide');
setCookie('firstVisitOfTody', true);
$('.js-Close').on('click', () => {
$('.js-TipBox').addClass('hide');
});
}
}
方法二:localStrorage存储当天第一次访问的时间
if (isFirstVisitOfTody()) {
localStorage.setItem('firstVisitTimeOfTody', new Date());
}
function isFirstVisitOfTody() {
let firstVisitTimeOfTody = localStorage.getItem('firstVisitTimeOfTody');
if (!firstVisitTimeOfTody) {
return true;
}
firstVisitTimeOfTody = new Date(firstVisitTimeOfTody);
if ((new Date() - firstVisitTimeOfTody - (1000 * 60 * 60 * 24)) >= 0) {
return true;
}
return false;
}