如何在Javascript中订购日期时间字符串?

时间:2011-09-06 08:26:07

标签: javascript datetime sorting

我从youtube JSON请求(在对对象进行小分析之后)得到这些字符串(应该表示日期时间):

2009-12-16T15:51:57.000Z
2010-11-04T10:01:15.000Z
2010-11-04T14:00:04.000Z
2010-11-04T11:12:36.000Z
2010-11-04T10:24:26.000Z
2010-11-04T12:05:58.000Z
2010-04-30T13:28:08.000Z
2010-11-17T13:57:27.000Z

事实上,我需要订购这些列表(降序),以便拍摄最近发布的视频。 但是我如何订购这些日期时间? JS上有本机方法吗?

3 个答案:

答案 0 :(得分:2)

实现这一目标的一种简单方法是将所有这些放入一个字符串数组中并对该数组进行排序。

var arr = [ "2", "1", "3" ];
arr.sort(); // this gives [ "1", "2", "3" ]

您可以在那里阅读完整的文档:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/sort

答案 1 :(得分:1)

您可以使用默认的排序方法,因为日期格式完美,可以进行一些排序(年,月,日,小时,分钟,秒)。如果那是另一种方式,这将更加困难。查看sort例如:

var unsortedArray = [ 
    "2009-12-16T15:51:57.000Z", 
    "2010-11-04T10:01:15.000Z", 
    "2010-11-04T14:00:04.000Z",
    "2010-11-04T11:12:36.000Z" ]; 

var sortedArray = unsortedArray.sort(); 

如果您想要反向(降序)排序,请将.reverse()添加到已排序的数组中。

答案 2 :(得分:1)

你要求降序排序。一种快速的方法是使用反向。

http://jsfiddle.net/6pLHP/

a = [
    "2009-12-16T15:51:57.000Z",
    "2010-11-04T10:01:15.000Z",
    "2010-11-04T14:00:04.000Z",
    "2010-11-04T11:12:36.000Z",
    "2010-11-04T10:24:26.000Z",
    "2010-11-04T12:05:58.000Z",
    "2010-04-30T13:28:08.000Z",
    "2010-11-17T13:57:27.000Z"
];
alert(JSON.stringify(a.sort().reverse()));