12

文字列ごとにDateオブジェクトを作成してオブジェクトを比較するのではなく、JavaScriptでISO8601の日付を文字列として比較したいと思います。

var date_array = ['2012-10-01','2012-11-27','2012-12-23'];
console.log(date_array[0] < date_array[1])  // gives true
console.log(date_array[1] > date_array[2])  // gives false

これを行う理由は、文字列の比較は、日付文字列ごとにオブジェクトを作成してオブジェクトを比較するよりも高速である必要があると考えているためです。

これらの比較は、一部のブラウザでは期待どおりに機能しているようです。この種のアルファベット順の 辞書式 文字列の比較がすべてのブラウザで機能することを期待できますか?この日付比較の方法は、実際にはDateオブジェクトを使用するよりも高速ですか?

4

1 に答える 1

11

その比較演算子を使用すると、文字列の値が辞書式順序で確認されます。これは、辞書式順序を意味します。

ASCIIでは、10進数は最小(00x30)から最大(9、 )まで順番に格納され0x39ます。それらが一貫してこの形式であり、最大値(年)から最小値(日)であり、常に0可能な最大値にパディングされている場合、これらの比較は問題ありません。

于 2012-12-05T03:03:56.560 に答える