如何实现;“是第二天”;javascript验证?
我在javascript本地存储中有状态,例如如何实现;“是第二天”;javascript验证?,javascript,Javascript,我在javascript本地存储中有状态,例如var count=0变量 某些函数更改此变量: function foo () { this.count++; localStorage.setItem('COUNT', this.count); } 在重新加载页面上,我从本地存储中恢复此值 function restore() { this.count = localStorage.getItem('COUNT'); } 问题-是在每个新的一天(按用户的时区)将变量计
var count=0代码>变量
某些函数更改此变量:
function foo () {
this.count++;
localStorage.setItem('COUNT', this.count);
}
在重新加载页面上,我从本地存储中恢复此值
function restore() {
this.count = localStorage.getItem('COUNT');
}
问题-是在每个新的一天(按用户的时区)将变量计数置零。所以我需要验证“是第二天”来做这件事
所以我开始存储上次访问,并在每次请求中用当前日期检查它。但它在我的GMT+04:00时区不起作用:第二天已经到了,但无效并没有发生
let lastVisitTimestamp = localStorage.getItem(TRACKING_LAST_VISIT_STORAGE_ID);
if (!lastVisitTimestamp) {
this.count = 0;
localStorage.setItem(TRACKING_LAST_VISIT_STORAGE_ID, (new Date()).getTime());
return;
}
let currentDate = new Date();
currentDate.setHours(0,0,0,0);
let previousDate = new Date(parseInt(lastVisitTimestamp));
previousDate.setHours(0,0,0,0);
if (currentDate.getTime() === previousDate.getTime()) {
this.count = localStorage.getItem('COUNT');
} else {
this.count = 0;
localStorage.setItem(TRACKING_LAST_VISIT_STORAGE_ID, currentDate.getTime());
}
我应该改变什么?我解决了这个问题。需要操作日期字符串,而不是时间戳。
日期字符串可以通过以下方式获得:
function getCurrentDateString() {
let currentDate = new Date();
return new Date(currentDate.getTime() - (currentDate.getTimezoneOffset() * 60000)).toJSON().slice(0,10);
}