2010-05-18 2 views
1

если у меня есть 4 переменныхКак определить, является ли строка времени A перед временем-B?

startTime; endTime; startMerid; endMerid;

startMarid и endMarid либо собираются быть «AM», либо «PM».

но начальное время и время окончания будут строки вроде «дд: дд»

так можно начать: 12:30 PM и конец: 5:30 PM

Как я могу проверить, что время окончания не до время начала?

Спасибо!

ответ

9

Вы можете использовать DateJS:

Date.parse('12:30pm') < Date.parse('5:30pm'); // true 

EDIT:

Джастин имеет хорошую точку ниже. Вы можете найти последнюю смежные США версию here

Вы можете найти другие в /trunk/build

EDIT 2016:

Для тех, кто бил этот пост в 2016+, он выглядит более до date repo for DateJS теперь находится в GitHub: https://github.com/datejs/Datejs

Также, кажется, MomentJS - очень популярный выбор в эти дни.

+3

Это отличный плагин, но будьте очень осторожны, какая версия этого плагина вы скачиваете , Первая страница по-прежнему связана с версией с ноября 2007 года, хотя есть еще одна версия, доступная из SVN, которая имеет исправления за год. Я нашел это с трудом, когда меня сжег ошибка, когда DateJS считал, что «A' в» 4 августа 2009 года был для «AM» ... –

+0

@ Justin Ethier - спасибо, я использую Nov Версия 2007 года! – Matt

2

Разберите поля часов и минут, чтобы у вас было две отдельные переменные. Затем добавьте 12 часам, если это PM, если значение часа не уже 12. Вы можете сравнить значения непосредственно:

if (startTimeHrs * 60 + startTimeMins) > 
    ( endTimeHrs * 60 + endTimeMins){ ... } 
+1

'Затем добавьте 12 часов, если это PM.' Ruh-roh ... вы не можете добавить 12 часов до времени, если это между 12 и 12:59! –

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