Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查JavaScript中的时间是否早于其他时间_Javascript - Fatal编程技术网

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

检查JavaScript中的时间是否早于其他时间,javascript,Javascript,我想使用JavaScript或任何JavaScript库检查一个时间是否早于另一个时间 例如,我有t1=12:45:30和t2=12:45:35我想检查t1是否早于t2。我如何使用JavaScript轻松地完成它 我正在尝试以下代码: if(t1<t2) if(t1正如其他人指出的,“12:34:42”不是一个有效的javascript时间戳,它阻止您使用Date对象,但是您可以轻松地将时间字符串转换为秒并比较这些值: var seconds = function(time) { r

我想使用JavaScript或任何JavaScript库检查一个时间是否早于另一个时间

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

我正在尝试以下代码:

if(t1<t2)

if(t1正如其他人指出的,“12:34:42”不是一个有效的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
}

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

负返回表示第一个参数小于第二个参数

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

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


//返回值:(Number)-5

可能重复的
t1=12:45:30
是无效的JavaScript。您实际上是如何创建日期的?是的,它不是有效的Js日期,一种方法是在数组中拆分您的日期并进行den比较。如果t1是字符串,首先使用arr=t1拆分它。拆分(:)然后将这些值乘以parseInt(arr[0])*60*60+parseInt(arr[1])*60+parseInt(arr[2])d3中是否没有内置函数。时间?这似乎是不太复杂的答案,也是我使用的答案。
function compareHMS(hms1, hms2){
    return hms1.replace(/\D+/g,'')-hms2.replace(/\D+/g,''); 
}