我想检查时间是否早于使用JavaScript或任何JavaScript库的时间。
例如我有t1=12:45:30
和t2=12:45:35
我想检查t1是否早于t2。如何使用JavaScript轻松完成?
我正在尝试以下代码:
if(t1<t2)
但它没有用。
答案 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