2

gettime を使用して日付文字列をソートしようとしています。しかし、それはいくつかのあいまいな値を返しています。

  1. 1428303000000 2014/06/16 16:50
  2. 1389074040000 2014/01/07 16:54

最初の日付は 2 番目よりも小さいので、いいえ。of milliseconds も小さくする必要があります。

http://www.tutorialspoint.com/cgi-binpractice.cgi?file=javascript_178でも確認できます

したがって、なぜこれがこのように動作するのかわかりません。

助けはありますか?

4

2 に答える 2

2

16/06/2014おそらく、6 か月目の 16 日を意味する日付を使用して作成しているでしょう。ただし、これは解析方法ではありません。最初の要素は月として扱われます。2 番目の要素は日です。1 年は 16 か月ではないため、日付は次の年に丸められます (つまり、2014 年の 16 か月目は 2015 年の 4 か月目です)。

言い換えると:

Date.parse("16/06/2014 16:50") === Date.parse("04/06/2015 16:50"); // => true
于 2014-07-14T02:22:54.043 に答える
2

Dateオブジェクトを正しく作成している場合は、コードをテストしてください

// new Date(year, month, day, hour, minute, second, millisecond);

// Working with date 16/06/2014 16:50
var foo = new Date(2014, 6, 16, 16, 50);
foo.getTime(); // 1405518600000

// Working with date 01/07/2014 16:54 
var foo = new Date(2014, 7, 1, 16, 54);
foo.getTime(); // 1406901240000

詳細については、Date オブジェクト参照を参照してください。

あなたのコードと、「16/06/2014 16:50」から「1428303000000」にどのように到達するかを確認するまで、これ以上のことはできません。

于 2014-07-14T02:23:28.517 に答える