0

私は両方の条件で偽になっています

localStorage.getitem("dl-visited-date") // "Mon Oct 07 2013 13:58:18 GMT-0400 (EDT)";
currentDate // Tue Oct 08 2013 14:18:26 GMT-0400 (EDT)
currentDate > localStorage.getItem("dl-visited-date") //false
currentDate < localStorage.getItem("dl-visited-date") //false
4

2 に答える 2

3

localStorage.getitem文字列を返します(Dateオブジェクトは、ローカルストレージに保存したときに暗黙的に文字列化されました)。これを Date オブジェクトと比較すると、どちらも数値にキャストされますが、これは Date オブジェクトでは機能しますが、文字列は になりNaNます。そして、それfalseは何にでも匹敵します。

前に解析する必要があります (Dateコンストラクターを使用):

var date = new Date(localStorage.getitem("dl-visited-date")),
    currentDate = new Date();

それらが等しいかどうかをテストしたい場合は、代わりに単純な数値を使用する必要があります。Date.parse次に使用します。

var dateStamp = Date.parse(localStorage.getitem("dl-visited-date")),
    currentDateStamp = Date.now();
于 2013-10-07T18:32:40.043 に答える