2 javascript sorting time date
我在使用 JavaScript 按降序对日期和时间进行排序时遇到了一些问题。这是一些输入:
[{chatroomID: "1", date: "12/26/2017", time: "10:31:32 PM"},
{chatroomID: "2", date: "12/26/2017", time: "10:38:01 PM"},
{chatroomID: "3", date: "12/26/2017", time: "10:35:14 PM"}]
Run Code Online (Sandbox Code Playgroud)
我想按降序对它们进行排序,最新的将排在最前面,但我不知道该怎么做。
所需的输出:
[{chatroomID: "2", date: "12/26/2017", time: "10:38:01 PM"},
{chatroomID: "3", date: "12/26/2017", time: "10:35:14 PM"},
{chatroomID: "1", date: "12/26/2017", time: "10:31:32 PM"}]
Run Code Online (Sandbox Code Playgroud)
如果结果来自同一日期,那么我会按时间排序。否则,最新日期将在最前面。有任何想法吗?
谢谢!
只需连接dateand time,然后将其解析为 aDate并获取时间戳。从那时起,它只是简单的旧排序。
const datetimes = [
{chatroomID: "1", date: "12/26/2017", time: "10:31:32 PM"},
{chatroomID: "2", date: "12/26/2017", time: "10:38:01 PM"},
{chatroomID: "3", date: "12/26/2017", time: "10:35:14 PM"}
]
const sorted = datetimes.sort((a, b) => {
const aDate = new Date(a.date + ' ' + a.time)
const bDate = new Date(b.date + ' ' + b.time)
return bDate.getTime() - aDate.getTime()
})
console.log(sorted)Run Code Online (Sandbox Code Playgroud)
更新:Marcel Gwerder 评论中的链接答案表明您可以完全跳过getTime()并比较日期。
| 归档时间: |
|
| 查看次数: |
7137 次 |
| 最近记录: |