Я пытаюсь вычислить разницу между двумя раз с использованием JavaScript. Это просто базовая математика, но у меня есть некоторые проблемы с этим при использовании JSON.stringify()
и JSON.parse()
.
Если вам интересно, почему я применяю функцию JSON.stringify()
к дате, это связано с тем, что я использую локальное хранилище для хранения некоторых данных на стороне клиента и использую его, когда клиент снова приземляется на мой сайт (это быстрее, чем а не больше запросов на сервер). Эти данные обычно обновляются раз в то время (я захватываю данные через API с другого сайта), поэтому я настроил переменную data_update
, и я сохраняю ее вместе с другими данными.
Таким образом я собираю сохраненные данные из локального хранилища и проверяю, существует ли разница между data_update
(которая является датой/временем) и временем/датой при проверке, и если она больше, чем неделя/день/и т.д.
Вот почему я использую функции JSON. Моя проблема заключается в том, что когда я разбираю данные из локального хранилища, дата кажется отличной от объекта Date()
.
Я пытаюсь выполнить следующую операцию за сообщение:
var x = JSON.parse(JSON.stringify(new Date()));
var y = JSON.parse(this.get_local_storage_data(this.data_cache_key)); // the data object stored on local storage
var q = y.data_update; // this is the variable where the Date() was stored
console.log(Math.floor((x-q)/1000));
Вышеуказанное вернет null
. Также, когда я хочу увидеть результат Math.floor(x)
, он снова возвращает null
.
Так что я могу сделать в этой ситуации? Есть ли исправление для этого?