【发布时间】:2016-11-30 01:59:36
【问题描述】:
我在下面有一个 JavaScript 数组。
const arr = [
"2016-10-10 12:03:05",
"2016-10-10 12:03:05",
"2016-10-10 2:30:01",
"2016-10-10 2:30:01",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 1:04:01",
"2016-10-10 1:04:01"
];
我想先按降序或最新日期排序。
我期待下面的代码为我整理我的数据
console.log('the real sort is', arr.sort((a,b) => moment(b).diff(moment(a))));
但是上面的打印
[
"2016-10-10 12:03:05",
"2016-10-10 12:03:05",
"2016-10-10 2:30:01",
"2016-10-10 2:30:01",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 1:04:01",
"2016-10-10 1:04:01"
]
和 console.log('真正的排序是', arr.sort((a,b) => moment(a).diff(moment(b))));
返回
[
"2016-10-10 1:04:01",
"2016-10-10 1:04:01",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 2:00:06",
"2016-10-10 2:30:01",
"2016-10-10 2:30:01",
"2016-10-10 12:03:05",
"2016-10-10 12:03:05"
]
在我看来它只是反转索引。请问我如何对这种数组进行相应的排序?任何帮助将不胜感激
更新
非常抱歉浪费您的时间。我天真地忘记了,误以为时间是 12 小时格式,因此预计下午时间会晚于上午时间。不仅我错了,而且事实证明我们有一个角管,可以将显示转换为 12 小时当量和当地时间。所以我的转换应该没问题,不幸的是我花了好几个小时才意识到这一点。我再次道歉。
【问题讨论】:
-
@TimSheehan 已经尝试过了,已经尝试了我在这里问之前提到的所有解决方案。我也很困惑。
-
@zerkms 我预计 2:00:06 是最近的时间,然后是 1 和 12。
-
只需将它们排序为字符串。
标签: javascript arrays sorting date