【问题标题】:Sort timestamps with javascript使用 javascript 对时间戳进行排序
【发布时间】:2020-10-06 15:08:21
【问题描述】:

我有一个 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"]

我尝试对它们进行排序,但常规排序或反向排序均无法正常工作。我该怎么办?

【问题讨论】:

  • 将它们解析为实际的Date 对象,然后按值排序,或使用字符串操作将它们格式化为可排序的格式(例如,yyyy-mm-dd HH:mm)。

标签: javascript sorting timestamp


【解决方案1】:

如果您确实需要保留发布的格式,则需要更改并改回它。您可以执行以下操作:

  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"]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
相关资源
最近更新 更多