javascript时间做比较

如:HH:mm:ss这种格式的两个时间如何做比较?

阅读 3.7k
4 个回答

转成时间戳再比较

到目前为止最简单的方法是从另一个开始减去一个日期并比较结果。关系运算符 < <= > >= 可以用于比较JavaScript日期:
`var oDateOne = new Date();
var oDateTwo = new Date();

alert(oDateOne - oDateTwo === 0);
alert(oDateOne - oDateTwo <0);
alert(oDateOne - oDateTwo> 0);`
参考:
https://ask.helplib.com/37348

     function compareTime(time1,time2){
        var timeNums1 = time1.split(':').map(t => Number(t));
        var timeNums2 = time2.split(':').map(t => Number(t));
        
        /*** 时间相等 ***/
        if(timeNums1[0] === timeNums2[0] && 
           timeNums1[1] === timeNums2[1] && 
           timeNums1[2] === timeNums2[2]){
           return 0;
        }
        
        /*** 对时分秒进行比较 ***/
        for(var i = 0 ; i < 3 ;i++){
           if(timeNums1[i] > timeNums2[i]){
              return 1
           }
        }
        return -1;
     }

构建一个将时间字符串转换成数值的函数就可以了。

function duration(timeStr) {
    return +new Date(`2000-01-01 ${timeStr}`) - new Date('2000-01-01 00:00:00');
}

console.log(duration('23:23:23') - duration('23:23:22'));
// 1000
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题