检查JavaScript中的时间是否早于其他时间

时间:2015-05-12 16:41:45

标签: javascript

我想检查时间是否早于使用JavaScript或任何JavaScript库的时间。

例如我有t1=12:45:30t2=12:45:35我想检查t1是否早于t2。如何使用JavaScript轻松完成?

我正在尝试以下代码:

if(t1<t2)

但它没有用。

2 个答案:

答案 0 :(得分:1)

正如其他人所指出的那样,&#34; 12:34:42&#34;不是一个有效的javascript时间戳,它阻止您使用Date对象,但您可以轻松地将时间字符串转换为秒并比较这些值:

var seconds = function(time) {
  return time.split(":").reverse().reduce(function(p,c,i) { 
    return p + (parseInt(c, 10) * (Math.pow(60, i)));
  }, 0);
}

if(seconds(t1) < seconds(t2)) {
  ... do stuff
}

或者,如果您有ES6可用:

const seconds = (time) => time.split(":").reverse().reduce((p,c,i) => {
    return p + (parseInt(c, 10) * (Math.pow(60, i)));
}, 0);

答案 1 :(得分:1)

如果您使用24小时制,则可以删除冒号并减去数字 比较两次。

否定回报表示第一个参数小于第二个参数。

正数表示第一个更大,零表示它们相同。

function compareHMS(hms1, hms2){
    return hms1.replace(/\D+/g,'')-hms2.replace(/\D+/g,''); 
}

compareHMS('12:45:30','12:45:35');

//返回值:(数字) -5