Compare two time (hh:mm:ss) strings

前端 未结 5 1927
半阙折子戏
半阙折子戏 2020-12-11 11:46

I have two time strings in hh:mm:ss format. (eg: 12:40:13 and 20:01:01.) How can I compare these in JavaScript?

5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-11 12:15

    DEMO HERE

    I prefer to have date objects, but as pointed out elsewhere, you can just convert to seconds if you want to do simple compares

    function dateCompare(time1,time2) {
      var t1 = new Date();
      var parts = time1.split(":");
      t1.setHours(parts[0],parts[1],parts[2],0);
      var t2 = new Date();
      parts = time2.split(":");
      t2.setHours(parts[0],parts[1],parts[2],0);
    
      // returns 1 if greater, -1 if less and 0 if the same
      if (t1.getTime()>t2.getTime()) return 1;
      if (t1.getTime()

    For seconds:

    function dateDiff(time1,time2) {
      var t1 = new Date();
      var parts = time1.split(":");
      t1.setHours(parts[0],parts[1],parts[2],0);
      var t2 = new Date();
      parts = time2.split(":");
      t2.setHours(parts[0],parts[1],parts[2],0);
    
      return parseInt(Math.abs(t1.getTime()-t2.getTime())/1000);
    }
    

    Assuming you have 24 hour times and same padding you can do simple string compare

     var t1 = "12:40:13", t2= "20:01:01";
     if (t1

提交回复
热议问题