我有以下格式的日期:
[ [ 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; });