Приложение HTML5 для смартфона (android, ios) с датой localStorage () - PullRequest
2 голосов
/ 30 марта 2012

ДЛЯ МОДЕРАТОРОВ !!Я СОЗДАЛ ЭТОТ ВОПРОС О StackApps ПОСЛЕ ИССЛЕДОВАНИЯ В СТЕКОВЫХ РАЗДЕЛАХ.НУЖНО ЛИ УДАЛИТЬ ЭТО ОДИН?

Привет, я создаю простое приложение HTML5, которое использует timeout ().Основная функция приложения: вы выбираете элемент и запускается тайм-аут ().Он работает нормально, но если я закрою приложение, таймер остановится, конечно.Я пытаюсь сохранить его в localStorage, но он не работает для того, что мне нужно.

вот мой код

получить текущую дату

var current = new Date();

проверить, если localStorageпусто или нет.Если нет, то она вычисляет разницу в миллисекундах между сохраненной датой и текущей датой.

function update() {
  if (localStorage.time != undefined){
  var diff = current - localStorage.time;
   alert (diff)
}

update();

здесь функция сохраняет для сохраняемой даты и проверяет разницу между двумя датами.

function save() {
  localStorage.time = new Date();
  click_time = localStorage.time;
  var diff =  click_time - current;
   alert (diff);
   }

очистить localStorage

   function clear() {
   localStorage.clear();
   }

$(document).ready(function() {
$('input#save').click(function(){
  save();
});
$('input#clear').click(function(){
  clear();
});
});


<input type="submit" value="click me!" id="save"/>
<input type="submit" value="clear" id="clear"/>

Но я просто получаю NaN !! Проблема в том, как мне сохранить дату в localStorage и как я могу получить ее как дату?

Заранее спасибо.

1 Ответ

1 голос
/ 30 марта 2012

Замените все new Date(); на new Date().getTime();

Различия между новыми датами (). GetTime () будут в миллисекундах.

И только для уточнения:

Использование new Date () вернет строку, подобную этой: «Fri Mar 30 2012 12:02:33 GMT-0400 (EDT)».Поэтому, когда вы пытаетесь выполнить вычитание между двумя из этих строк, вы получаете NaN.

new Date (). GetTime () вернет целое число, подобное этому 1333123359919. Это в миллисекундах с 1 января 1970 г.что-то вроде того).Таким образом, разница между двумя из них даст вам количество миллисекунд между двумя вызовами, и это то, что вы хотите.

...