我有一个包含 Unix 时间戳的数组,我想对该数组进行排序,有人知道怎么做吗?或者可能将其转换为简单的日期格式,然后以任何方式对其进行排序?

还请举例

我试过这个,但没有用 Jquery - Fastest way to sort an array by timestamp

我的代码:

//where rawutimes is unsorted unix time array
console.log(rawutimes);


 // output ["1423857905", "1423611874", "1422953913", "1423499856", "1423502234", "1423502884", "1423503754", "1423510832", "1423511445", "1423514134", "1423358619", "1423583825", "1423713297", "1423713401", "1423735601", "1423772523", "1423768351", "1423817039", "1423166917", "1423446473", "1423446761", "1423835014", "1423858124", "1423857905", "1423855048", "1423852400", "1423852313", "1423852210", findIndex: function, find: function]

thesorted = rawutimes.sort(function(x, y){
    return x.timestamp - y.timestamp;
});

//printing the sorted unix time array
console.log(thesorted);

//Output : ["1423857905", "1423852210", "1422953913", "1423499856", "1423502234", "1423502884", "1423503754", "1423510832", "1423511445", "1423514134", "1423358619", "1423583825", "1423713297", "1423713401", "1423611874", "1423772523", "1423768351", "1423817039", "1423166917", "1423446473", "1423446761", "1423835014", "1423858124", "1423857905", "1423855048", "1423852400", "1423852313", "1423735601", findIndex: function, find: function]

//Converted to Readable date format to confirm if it's sort or not?
rtimes = [];

for (var i = 0; i < rawutimes.length; i++) {
    rtime = timeConverter(thesorted[i]);
    rtimes.push(rtime);
};

//output


//["14,Feb 2015 1:5:5", "13,Feb 2015 23:30:10", "3,Feb 2015 13:58:33", "9,Feb 2015 21:37:36", "9,Feb 2015 22:17:14", "9,Feb 2015 22:28:4", "9,Feb 2015 22:42:34", "10,Feb 2015 0:40:32", "10,Feb 2015 0:50:45", "10,Feb 2015 1:35:34", "8,Feb 2015 6:23:39", "10,Feb 2015 20:57:5", "12,Feb 2015 8:54:57", "12,Feb 2015 8:56:41", "11,Feb 2015 4:44:34", "13,Feb 2015 1:22:3", "13,Feb 2015 0:12:31", "13,Feb 2015 13:43:59", "6,Feb 2015 1:8:37", "9,Feb 2015 6:47:53", "9,Feb 2015 6:52:41", "13,Feb 2015 18:43:34", "14,Feb 2015 1:8:44", "14,Feb 2015 1:5:5", "14,Feb 2015 0:17:28", "13,Feb 2015 23:33:20", "13,Feb 2015 23:31:53", "12,Feb 2015 15:6:41"]


//result array not sorted

谢谢

最佳答案

您有一个字符串列表,但在 sort 函数中使用 .timestamp。只需删除它:

rawutimes = ["1423857905", "1423611874", "1422953913", "1423499856", "1423502234", "1423502884", "1423503754", "1423510832", "1423511445", "1423514134", "1423358619", "1423583825", "1423713297", "1423713401", "1423735601", "1423772523", "1423768351", "1423817039", "1423166917", "1423446473", "1423446761", "1423835014", "1423858124", "1423857905", "1423855048", "1423852400", "1423852313", "1423852210"]

thesorted = rawutimes.sort(function(x, y){
    return x - y;
});

rtimes = thesorted.map(function(x) {
  return new Date(x * 1000);
});

document.write(rtimes.join("<br>"))

关于javascript - 如何对 Javascript Unix 时间戳数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28507793/

10-14 01:49