根据当前时间排序时间
Sort time based on current time
我正在尝试根据当前时间对数组进行排序。这是我的数组
[
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
]
我想要 return 一个数组,其中最接近的当前时间将在第一个索引上,然后是下一个接近的时间(直到即将到来的时间),而之前的时间将是最后一项。例如,如果当前时间是 1pm
那么预期结果将是
[
{
"time":"13:30:00"
},
{
"time":"14:30:00"
},
{
"time":"10:00:00"
},
{
"time":"10:30:00"
}
]
我怎样才能做到这一点?
虽然最好使用 UNIX 时间戳来表示时间,但您可以这样做:
var times = [
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
];
var currentTime = "13:00:00";
var sortedTimes = times.sort((a, b) => {
if (a.time < currentTime && b.time > currentTime) return 1;
else if (a.time > currentTime && b.time < currentTime) return -1;
else if (a.time < b.time) return -1;
return 1;
});
我正在尝试根据当前时间对数组进行排序。这是我的数组
[
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
]
我想要 return 一个数组,其中最接近的当前时间将在第一个索引上,然后是下一个接近的时间(直到即将到来的时间),而之前的时间将是最后一项。例如,如果当前时间是 1pm
那么预期结果将是
[
{
"time":"13:30:00"
},
{
"time":"14:30:00"
},
{
"time":"10:00:00"
},
{
"time":"10:30:00"
}
]
我怎样才能做到这一点?
虽然最好使用 UNIX 时间戳来表示时间,但您可以这样做:
var times = [
{
"time":"10:00:00"
},
{
"time":"10:30:00"
},
{
"time":"13:30:00"
},
{
"time":"14:30:00"
}
];
var currentTime = "13:00:00";
var sortedTimes = times.sort((a, b) => {
if (a.time < currentTime && b.time > currentTime) return 1;
else if (a.time > currentTime && b.time < currentTime) return -1;
else if (a.time < b.time) return -1;
return 1;
});