2013-09-25 2 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'); 
} 

как я могу сравнить эти значения, ти меня, когда они являются строкой ???

ответ

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

EDIT:

Обратите внимание, что вы разборе произвольную дату, что вы не заинтересованы, он просто должен быть одинаковым с обеих сторон.

+0

Date.parse зависит от реализации, и в этом случае будет возвращать значение NaN в некоторых браузерах (например, Safari). 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() позволяет указать часы, минуты, секунды

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

Если бы я имел достаточно повторений, чтобы проголосовать за решение @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

Смежные вопросы