2016-07-05 1 views
0

変数がdeadlineTue Jul 05 2016 18:15:00 GMT+0100 (BST))のlocalStorageに保存されていますが、この日付とnew Date()の違いを知りたいのですが、ローカルに保存された日付は機能していないようです。例えばJavaScript - 日付がlocalStorageに保存されている関数と連携しません

私が実行しようとした場合:console.log(deadline.getTime())私はエラーを取得:deadline.getTime is not a functionをしかし、私はnew Date()に同じ機能を実行するとき、それはまったく同じであることの日付の構文にもかかわらず、正常に動作します。誰か光を当てることはできますか?ありがとう。

+1

'typeof deadline'と' deadline instanceof Date'を表示できますか? – Arnial

+0

'string'と' false'それぞれ – mellows

答えて

2

All values in localStorage are always stringsDateオブジェクトをlocalStorageに保存すると、自動的にstringに変換されます。

締め切りを返すときは、Dateではありません。それは文字列です。 Dateメソッドを呼び出す場合は、文字列表現をDateに変換する必要があります。あなたを助けるライブラリ(moment.js)があります。

また、あなたの日付を取得する簡単な方法があります。デフォルトの文字列表現として保存しないでください。タイムスタンプとして保存します。次に、日付を取得する必要がある場合は、localStorageにタイムスタンプから新しいDateを作成します。

//save in localStorage 
localStorage.setItem('deadline', deadline_date.getTime()); 

//load from localStorage 
var deadline = new Date(localStorage.getItem('deadline')); 
関連する問題