2012-03-30 11 views
2

モデレーター用! 私はこの質問を、stackappsへの研究の後にstackappsに作成しました。 これを削除する必要がありますか?スマートフォン用のHTML5アプリケーション(android、ios)のlocalStorage date()

こんにちは、タイムアウト()を使用する単純なHTML5アプリケーションを作成しています。 APPの基本機能は: アイテムを選択し、タイムアウト()が開始されます。それは正常に動作しますが、アプリケーションを閉じるとタイマーはもちろん停止します。 私はそれをlocalStorageに格納しようとしていますが、必要なものに対しては機能しません。

は、ここでのlocalStorageが空であるかどうか

は、現在の日付に

var current = new Date(); 

チェックを取得する私のコードです。そうでなければ、格納された日付と現在の日付との間の差をミリ秒で計算する。

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

update(); 

ここでは、保存する日付の関数を保存し、2つの日付の違いをチェックします。

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

new Date().getTime();

ですべてnew Date();を交換し、新しい日付の間の違い()。getTime() 'sはミリ秒単位になります。

そして、ちょうど詳しく説明する:

を新しい日付を使用するには、()は、このような文字列が返されます "金2012年3月30日12時02分33秒GMT-0400(EDT)を。"したがって、これらの文字列の2つの間で減算を実行しようとすると、NaNが返されます。

新しいDate()。getTime()は、このような整数を返します。これは、1333123359919のような整数を返します。これは1970年1月1日(またはそのようなもの)からのミリ秒です。したがって、これらの2つの違いは、2つの呼び出しの間のミリ秒数を示します。これは必要なものです。

+0

ありがとうございます!できます。私は評判が低いので投票をすることはできません。 –

+0

全く問題ありません。お役に立てて嬉しいです!また、長い整数を文字列に戻す必要がある場合は、この新しい日付(1333123359919)のような別のDateオブジェクトを作成することができます。ここで、1333123359919はgetTime()から保存された値です。 – soundslikeneon

+1

しかし、奇妙なことは、日付がlocalStorageにない場合、正しく動作するということです。だからこそ私はちょっと混乱していました。私は日付の代わりにlocalStorage関数に焦点を当てました。 –

関連する問題