2013-09-25 72 views
6

我有两个时间,格式为“HH:MM”我想对它们进行比较,我有下面的代码来获得现在的时间在我的格式:如何在JavaScript中比较时间?

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'); 
} 

我怎么能比较这些值作为TI我当他们是一个字符串?

回答

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

编辑:

注意你解析你是不感兴趣的任意日期,它只需要在两侧是相同的。

+0

Date.parse是依赖于实现,在这种情况下,会在某些浏览器(如Safari浏览器)都将返回NaN。 OP可以直接将字符串作为字符串进行比较。 – RobG

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. 
9

使用日期对象。 Date.setHours()允许你如果我有足够的代表把票投给@Gabo Esquivel的解决方案指定小时,分钟,秒

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"); 
} 
+0

我知道这个问题问如何比较字符串,但我认为这是一个更好的解决方案的整体问题。 –

0

。几天来我一直在寻找和测试解决方案,这是唯一一个适合我的解决方案。

我需要一个条件语句来测试当前时间是否为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