如何快速比较两个日期的大小?

            let time = {
                endDate: "2019-02-23",
                endTime: "17:00:35",
                startDate: "2019-02-23",
                startTime: "17:50:35"
            };
            如何比较上面两对时间endDate+endTime与startDate+startTime的大小?
            我现在解决方案是拼接然后转时间戳比较大小,有没有更快速的方法?
阅读 5.4k
3 个回答
let time = {
    endDate: "2019-02-23",
    endTime: "17:00:35",
    startDate: "2019-02-23",
    startTime: "17:50:35"
};
// 转时间戳比较稳妥。
+new Date(time.endDate+time.endTime) < +new Date(time.startDate+time.startTime);
// 这种方法可以写到`utils`工具方法里去呀。
// 调用一下就可以了。比如:
export const compareDate = (date1, date2) => {
    return new Date(date1).getTime() >= (new Date(date2).getTime());
};

拼接成字符串格式固定直接比较就行了,不需要转时间戳。

'2019-02-02 17:00:35' > '2019-02-23 17:50:35' //false
字符串比较会逐个用 Unicode 值来比较
首先要保证两个比较的字符长度相等或格式相同:'22'>'3' // false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题