js对时间区间排序

我有一个数组,大致上是['2019-03-25 ~ 2019-04-25','2019-05-01 ~ 2019-05-30']
这样的。我现在再添加这种时间区间进去,怎么做排序。。比方说添加一个2019-04-26 ~ 2019-04-30这种,添加到这个中间,如果时间是比这个小就排在前面,像这种排序应该怎么写?

阅读 3k
2 个回答

把他强转为date,然后就可以比较大小了

arr.sort((a,b) => {
    return (new Date(a)) < (new Date(b))
})
var date = ['2019-03-25 ~ 2019-04-25','2019-05-01 ~ 2019-05-30'];
function sortTime(arr) {
    var getTime = function(n) {
        return n.split(/\~/).map(function(e) {
            return new Date(e.trim()).getTime();
        });
    };
    return arr.sort(function(a, b) {
        return getTime(a)[1] - getTime(b)[0];
    });
}
console.log(sortTime(date));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题