如何在javascript中比较时间?

时间:2013-09-25 12:29:50

标签: javascript string date time casting

我有两次格式为“HH:MM”我想比较它们我有以下代码来获取现在的格式:

current_time = new Date();
hour = current_time.getHours();
minute = current_time.getMinutes();
if(hour<10){hour='0'+hour} if(minute<10){minute='0'+minute}
my_time = hour+':'+minute;

这段代码是为了在减去GMT差异后得到时间:

d = new Date()
var n = d.getTimezoneOffset();
var n1 = Math.abs(n);
var difference = (n1/60); 
my_time = my_time - (0+difference);

现在应将my_time的值与match_time的值进行比较:

match_time = 10:00;//for example
if(my_time > match_time)
{
  alert('yes');
}
else
{
  alert('No');
}

如何将这些值作为字符串的时间进行比较???

6 个答案:

答案 0 :(得分:13)

使用Date对象。 Date.setHours()允许您指定小时,分钟,秒

var currentD = new Date();
var startHappyHourD = new Date();
startHappyHourD.setHours(17,30,0); // 5.30 pm
var endHappyHourD = new Date();
endHappyHourD.setHours(18,30,0); // 6.30 pm

console.log("happy hour?")
if(currentD >= startHappyHourD && currentD < endHappyHourD ){
    console.log("yes!");
}else{
    console.log("no, sorry! between 5.30pm and 6.30pm");
}

答案 1 :(得分:4)

Date.parse('25/09/2013 13:31') > Date.parse('25/09/2013 9:15')

修改

请注意,您正在解析您不感兴趣的任意日期,它只需要在双方都相同。

答案 2 :(得分:1)

 if(Date.parse('01/01/2011 10:20:45') == Date.parse('01/01/2011 5:10:10')) {
  alert('same');
  }else{

  alert('different');

  }

The 1st January is an arbitrary date, doesn't mean anything.

答案 3 :(得分:0)

如果我有足够的代表投票给@Gabo Esquivel解决方案。几天来,我一直在寻找和测试解决方案,这是唯一适合我的解决方案。

我需要一个条件语句测试,如果当前时间是0830,如果是,请做一些事情。我的if语句不起作用,所以我需要其他例子来处理。

//Business Hours: Saturday 8:30am-12pm; highlight Saturday table row.
function showSaturdayHours() {
    var today = new Date();
    var weekday = today.getDay();
    var saturdayOpen = new Date();
    saturdayOpen.setHours(8, 30, 0);
    var saturdayClose = new Date();
    saturdayClose.setHours(12, 0, 0);

if (weekday == 6) {
    $('#saturday-row').addClass('row-blue'); //highlight table row if current day is Saturday.
    if (today >= saturdayOpen && today < saturdayClose) {
        document.getElementById('saturday-open').innerHTML = 'Open';
    } else {
        document.getElementById('saturday-open').innerHTML = 'Closed';
    }
  }
}

营业时间表:JSFiddle

答案 4 :(得分:0)

我们可以使用一些技巧。

var time1 = "09:30";
var time2 = "10:30";
var time1Date= new Date("01/01/2000 "+time1);
var time2Date= new Date("01/01/2000 "+time2);

if(time1Date >= time2Date ){
    console.log("time1");
}else{
    console.log("time2");
}

答案 5 :(得分:0)

与@Arjun Sol相似,您无需使用Date.parse,就可以从字符串本身中获取时间,创建一个新的Date对象并进行比较。

const time1 = '12:42';
const time2 = '18:30';

const getTime = time => new Date(2019, 9, 2, time.substring(0, 2), time.substring(3, 5), 0, 0);

const result = getTime(time1) < getTime(time2);
console.log('This should be true:', result);