使用javascript对时间戳进行排序
我有一个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", "
["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)
解析日期时应该非常小心。看见