2013-06-25 2 views
-1

Как рассчитать разницу между двумя моментами, например (время сервера = 04: 30 вечера и <p id="orderTime">02:30 pm</p>) и вернуть его за считанные минуты, например, через 90 минут, используя jquery и javascript. Время и время сервера в 12-часовом формате не в течение 24 часов.рассчитать разницу между двумя моментами в минутах

+0

Будет ли всегда быть в формате 'HH: mm am'? – zerkms

+0

Как возвращается серверное время? Строка? Форматирование даты и времени JSON? Сохраняется ли она в переменной? Можете ли вы показать код, который его получает? – pete

+0

время в HH: mm am/pm формат и он должен вернуться в минутах 00:60/60 минут – gjman2

ответ

1

Если вы можете гарантировать, что они всегда будут иметь тот формат, то вот простое решение:

function humanReadableToMinutes(time) 
{ 
    var parts = time.split(/ |:/); 

    return (parts[2] == 'pm' * 12 * 60) 
     + parseInt(parts[0], 10) * 60 
     + parseInt(parts[1], 10); 
} 

http://jsfiddle.net/aYwux/2/

Объяснение:

  1. К var parts = time.split(/ |:/); мы разделив 02:30 pm на 3 части: 02, 30, pm.

  2. return (parts[2] == 'pm' * 12 * 60) + parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10); содержит 3 операндами:

    * (parts[2] == 'pm' * 12 * 60) --- adds additional 12 hours if it's "pm" 
    * parseInt(parts[0], 10) * 60 - takes hours fraction extracted and converts it to minutes 
    * parseInt(parts[1], 10) - minutes fraction 
    

PS: это решение не заботиться о 12am и 12pm точно, так что это домашнее задание для OP

+0

Не могли бы вы объяснить мне свои коды. Потому что мне нравится пытаться это понять. – gjman2

+1

Кстати, я бы хотел услышать критику от downvoter :-) – zerkms

+1

@ gjman2: теперь ясно? – zerkms

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