[英]How to realize “is next day” verification in javascript?
我在javascript本地存儲中有狀態,例如var count = 0;
變量。
一些函數會更改此變量:
function foo () {
this.count++;
localStorage.setItem('COUNT', this.count);
}
在重新加載頁面上,我從本地存儲恢復此值
function restore() {
this.count = localStorage.getItem('COUNT');
}
問題-在每個新的一天(按用戶的時區)使變量count
無效。 因此,我需要為此“驗證”。
因此,我開始存儲上次訪問,並根據每個請求的當前日期進行檢查。 但這不適用於我的GMT + 04:00時區:第二天到了,但沒有發生nullify。
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.