如何比较日期以查看相邻时间在哪里相遇

How to compare dates to see where adjacent times meet?

本文关键字:时间 相遇 在哪里 何比较 比较 日期      更新时间:2023-09-26

我有以下格式的日期:

[ [ Tue Jun 17 2014 09:00:00 GMT-0400 (EDT),
    Tue Jun 17 2014 10:00:00 GMT-0400 (EDT) ] ]
[ [ Thu Jun 19 2014 09:30:00 GMT-0400 (EDT),
    Thu Jun 19 2014 11:30:00 GMT-0400 (EDT) ] ]
[ [ Tue Jun 17 2014 10:00:00 GMT-0400 (EDT),
    Tue Jun 17 2014 11:00:00 GMT-0400 (EDT) ] ]

这些日期实际上是"会话",我需要看到某些会话彼此相邻的位置。例如,在本例中,第一个日期数组的结束时间为10AM,而最后一个日期数组的开始时间为10AM。如何通过计算找到这种情况?

我的一种方法是首先对数组集从最早的时间到最晚的时间进行排序,然后比较每个开始/结束日期对,看看它们是否相同,但我似乎无法通过它。任何想法都欢迎!

使用Date.parse()将字符串转换为Unix时间戳(如果这些实际上是Date对象,则使用.getTime()方法),然后使用Array.prototype.sort()订购会话。下面是一个会话按开始时间排序的示例:

var sessions = [
    ["Tue Jun 17 2014 09:00:00 GMT-0400 (EDT)", "Tue Jun 17 2014 10:00:00 GMT-0400 (EDT)"],
    ["Thu Jun 19 2014 09:30:00 GMT-0400 (EDT)", "Thu Jun 19 2014 11:30:00 GMT-0400 (EDT)"],
    ["Tue Jun 17 2014 10:00:00 GMT-0400 (EDT)", "Tue Jun 17 2014 11:00:00 GMT-0400 (EDT)"]
];
for (var i = 0; i < sessions.length; i++) {
    sessions[i].startTime= Date.parse(sessions[i][0]);
}
sessions.sort(function(a, b) { return a.startTime-b.startTime; });