У меня есть строка, подобная этой 3:35 PM - 5:25 PM
. Я пытаюсь написать две функции: getStartTime(times)
и getEndTime(times)
, которые возвращают время начала и окончания в 24-часовом формате, т. Е. В приведенном выше случае он будет возвращать 15:35
и 17:25
. До сих пор у меня есть рабочий getStartTime(times)
:Добавить часы в строку времени
function getStartTime(times){
var spaceSplit=times.split(" ");
var colonSplit=times.split(":");
if(s.search("PM")!=-1&&colonSplit[0]<12){
return String(Number(colonSplit[0])+12)+":"+colonSplit[1].substring(0,2);
}
return spaceSplit[0];
}
Однако, это некрасиво, и я не знаю, как сделать getEndTime(times)
. Кто-нибудь знает элегантный способ сделать обе эти функции? Обратите внимание, что строка всегда будет в этом формате (хотя часы могут быть двумя цифрами).
Поиск «от 12 часов до 24 часов преобразования» или что-то подобное, затем просто разбить строку и преобразовать каждый раз. – adeneo
Если это работает в первый раз, почему бы просто не разбить строку на «-», а затем отправить две части через эту функцию по одному за раз – Steve
Если это абсолютно в этом формате, вы все время можете использовать этот шаблон регулярного выражения http: //regexr.com/3b11b - подстановки $ 1 - время начала, $ 2 - AM или PM, $ 3 - время окончания, $ 4 - AM или PM – zfrisch