簡體   English   中英

如何在JavaScript中實現“是第二天”驗證?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM