Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript对时间戳进行排序_Javascript_Sorting_Timestamp - Fatal编程技术网

使用javascript对时间戳进行排序

使用javascript对时间戳进行排序,javascript,sorting,timestamp,Javascript,Sorting,Timestamp,我有一个javascript时间戳数组作为字符串,如下所示: ["6/10/2020 @ 10:1", "6/10/2020 @ 9:37", "6/10/2020 @ 12:1", "6/10/2020 @ 9:42", "6/10/2020 @ 12:2", "6/10/2020 @ 11:19", "6/10/2020 @ 10:50", "

我有一个javascript时间戳数组作为字符串,如下所示:

["6/10/2020 @ 10:1", "6/10/2020 @ 9:37", "6/10/2020 @ 12:1", "6/10/2020 @ 9:42", "6/10/2020 @ 12:2", "6/10/2020 @ 11:19", "6/10/2020 @ 10:50", "6/10/2020 @ 9:35", "6/10/2020 @ 9:36", "6/10/2020 @ 12:0"]
  let strings = ["6/10/2020 @ 10:1", "6/10/2020 @ 9:37", "6/10/2020 @ 12:1", "6/10/2020 @ 9:42", "6/10/2020 @ 12:2", "6/10/2020 @ 11:19", "6/10/2020 @ 10:50", "6/10/2020 @ 9:35", "6/10/2020 @ 9:36", "6/10/2020 @ 12:0"];
  let dates = strings.map(x=> {
    let parts = x.split(" ");
    let dateParts = parts[0].split("/");
    let timeParts = parts[2].split(":");
    return { date: new Date(dateParts[2],dateParts[1],dateParts[0],timeParts[0],timeParts[1]), string: x };
  });
  dates.sort( (x,y)=> x.date - y.date);
  strings = dates.map(x=> x.string);

我试图对它们进行排序,但常规排序和反向排序都不正确。我该怎么做呢?

如果你真的需要保留你发布的格式,你需要更改并将其更改回来。。你可以这样做:

["6/10/2020 @ 10:1", "6/10/2020 @ 9:37", "6/10/2020 @ 12:1", "6/10/2020 @ 9:42", "6/10/2020 @ 12:2", "6/10/2020 @ 11:19", "6/10/2020 @ 10:50", "6/10/2020 @ 9:35", "6/10/2020 @ 9:36", "6/10/2020 @ 12:0"]
  let strings = ["6/10/2020 @ 10:1", "6/10/2020 @ 9:37", "6/10/2020 @ 12:1", "6/10/2020 @ 9:42", "6/10/2020 @ 12:2", "6/10/2020 @ 11:19", "6/10/2020 @ 10:50", "6/10/2020 @ 9:35", "6/10/2020 @ 9:36", "6/10/2020 @ 12:0"];
  let dates = strings.map(x=> {
    let parts = x.split(" ");
    let dateParts = parts[0].split("/");
    let timeParts = parts[2].split(":");
    return { date: new Date(dateParts[2],dateParts[1],dateParts[0],timeParts[0],timeParts[1]), string: x };
  });
  dates.sort( (x,y)=> x.date - y.date);
  strings = dates.map(x=> x.string);
(这将保留原始格式,并允许您生成日期。无论您希望格式如何,您都应该添加检查以确保日期字符串有效)

返回:

["3/5/2020 @ 9:35","3/5/2020 @ 9:36","3/5/2020 @ 9:37","3/5/2020 @ 9:42","3/5/2020 @ 10:1","3/5/2020 @ 10:50","3/5/2020 @ 11:19","3/5/2020 @ 12:0","3/5/2020 @ 12:1","3/5/2020 @ 12:2"]

将它们解析为实际的
Date
对象,然后按值排序,或者使用字符串操作将它们格式化为可排序的格式(例如,yyyy-mm-dd-HH:mm)。使用
Date(string)
解析日期时应该非常小心。看见