2

我正在尝试使用 gettime 对我的日期字符串进行排序。但它返回了一些模糊的值,例如。

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

第一个日期小于第二个日期,所以它没有。毫秒数也应该更小。

您也可以在http://www.tutorialspoint.com/cgi-binpractice.cgi?file=javascript_178上查看

所以不知道为什么会这样。

有什么帮助吗?

4

2 回答 2

2

您可能正在使用16/06/2014并打算将其表示为第 6 个月的第 16 天来创建日期。但是,这不是它的解析方式。第一个元素被视为月份;第二个元素是天。由于一年没有 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 回答