Как установить / записать дату один раз в локальную последовательность?

#javascript

#javascript

Вопрос:

как установить дату (сейчас) в localstorage один раз, не обновляя ее? Я хочу получить ее один раз, и это все, но все же я хочу иметь возможность использовать ее, потому что есть еще одна функция, которая зависит от этой захваченной даты, ключевая проблема заключается в том, что она продолжает обновлять, как ее остановить.

 const currentDayChangeNumber = () => {
    const now = new Date();
    [...document.querySelectorAll('.day-number')].forEach(day => {
        day.textContent = formatDayNumber(now);
        incrementDayNumber(now);
    });

    // saving the now value to LS //
    localStorage.setItem('date', `${now}`);
} 

Комментарии:

1. Проверьте, не установлено ли оно уже, прежде чем устанавливать его. Кажется довольно простым

2. К вашему СВЕДЕНИЮ — .querySelectorAll() создает объект с .forEach() помощью метода. Нет необходимости в [...document.querySelectorAll(...)] гимнастике

Ответ №1:

localStorage.getItem возвращает null , когда ключ еще не существует в локальном хранилище (https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem ). Таким образом, вы можете просто проверить это условие перед обновлением значения.

 if (localStorage.getItem('date') === null) {
    localStorage.setItem('date', `${now}`);
}
 

В зависимости от дизайна остальной части вашего приложения вы также можете выполнить эту проверку перед вызовом currentDayChangeNumber .

Комментарии:

1. проблема в том, что дата не является статической, она постоянно обновляется, я хочу сохранить этот текущий момент времени!!