首页 > 解决方案 > 两种字符串格式 HH:MM:SS 的条件比较

问题描述

嗨,我是 javascript 新手,我想实现一个代码,其中我在开始时间下方有两个 var,结束时间是军事格式

  var start1= 08:00:00
  var endto=03:00:00

我想创造一个条件,如果我的给定时间在start1and end to之间

前任:

giventime = 02:00:00它会通过,因为它在范围内08:00:00 - 03:00:00

giventime = 05:00:00它不会通过,因为它不在范围内08:00:00 - 03:00:00

我尝试使用下面的代码:

   var start1= 08:00:00
   var endto=03:00:00
   var giventime = 02:00:00 


if giventime>start1 && giventime<=endto {

//but doesnt work it should allow because 02:00:00 is withing the range of 
  start1 and endto
     }

标签: javascript

解决方案


您可以添加具有给定时间的任何日期并将其转换为Date然后用于getTime()获取miliseconds. 现在检查是否start > end从减去 1 天start

var start1= '08:00:00'
   var endto='03:00:00'
   var givenTime = '02:00:00' 
function isTimeGreater(start,end,given){
   
   start = new Date(`Feb 12 2019 ${start}`).getTime();
   end = new Date(`Feb 12 2019 ${end}`).getTime();
   given = new Date(`Feb 12 2019 ${given}`).getTime();
   
   if(start > end){
   start -= 24*60*60 * 1000;
   
   }
   
   return start < given && given < end;
}
console.log(isTimeGreater(start1,endto,givenTime))
console.log(isTimeGreater(start1,endto,'04:00:00'))


推荐阅读