2015-05-12 4 views
0

Я хочу проверить, прошло ли время раньше, чем в другой раз, используя JavaScript или любую библиотеку JavaScript.Проверьте, не прошло ли какое-либо время в JavaScript

Например, у меня есть t1=12:45:30 и t2=12:45:35 Я хочу проверить, является ли t1 раньше, чем t2. Как я могу легко это сделать с помощью JavaScript?

Я пытался следующий код:

if(t1<t2) 

Но это не работает.

+0

можно дублировать http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript –

+0

't1 = 12: 45 : 30' недействительный JavaScript. Как вы * на самом деле * создаете свои даты? –

+0

Да, это не действительная дата Js, один подход заключается в том, чтобы разделить вашу дату в массиве и затем сравнить. – Ritesh

ответ

1

Как уже отмечалось, «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 
} 

Или если у вас есть в наличии: ES6

const seconds = (time) => time.split(":").reverse().reduce((p,c,i) => { 
    return p + (parseInt(c, 10) * (Math.pow(60, i))); 
}, 0); 
1

Если вы используете 24 часа времени вы можете удалить двоеточия и вычитать цифры сравнить два раза.

Отрицательный ответ указывает, что первый аргумент меньше второго.

Положительное означает, что первое больше, а ноль означает, что они идентичны.

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

compareHMS ('12: 45: 30' , '12: 45: 35');

// Возвращаемое значение: (номер) -5

+0

Отличное решение для формата времени 24 часа –

+0

Это, кажется, менее сложный ответ и тот, который я использую. –

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