Лучший способ преобразовать 17:00 в 17:00 (с 12 до 24 часов)

#javascript #datetime #date

#javascript #дата и время #Дата

Вопрос:

Я хотел бы иметь возможность преобразовывать простые временные строки из одной цифры в полную временную метку, понятную javascript.

Например:

 '1PM' => 13:00
'5AM' => 05:00
'7:15PM' => 19:15
etc, etc
  

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

Комментарии:

1. @Piskvor Я пробовал передавать различные строки даты в объект даты javascript. Кажется, что принимается значение AM PM только в следующем формате: ’13:00 01/01/01′. Я хочу, чтобы моим пользователям было очень легко вводить дату. Очень похоже doodle.com выполняет.

2. Пожалуйста, прекратите писать теги в заголовках.

Ответ №1:

Я не знаю способа сделать это с помощью встроенного JavaScript, например, Date. Возможно, вам придется создать свой собственный, например, проанализировать число с помощью строковых функций JavaScript, затем создать объект Date и вызвать для него setHours и setMinutes.

Ответ №2:

В зависимости от того, насколько пуленепробиваемым вы хотите сделать свой код, вы можете попробовать datejs размером 25,2 КБ.

Комментарии:

1. Спасибо @epascarello. Кажется, отличная библиотека. Это дорогой ресурс для веб-приложения? Каков рекомендуемый лимит кб для JS в обычном веб-приложении?

2. Размер велик, если вы используете какие-то базовые вещи, но если вы делаете надежные вещи с датами, оно того стоит.

Ответ №3:

Я придумал это как приближение:

new Date (new Date().toDateString() ' ' '10:55 PM').toTimeString().split(' ')[0]

Проблема здесь в том, что это не будет работать с форматами в вашем примере. Они должны быть не менее 1:00 PM (ЧЧ: ММ и пробел между временем и AM / PM)