Как получить am pm из строки времени даты, используя момент js
У меня есть строка как Mon 03-Jul-2017, 11:00 AM/PM
, и мне нужно преобразовать ее в строку типа 11:00 AM/PM
с помощью момента js.
Проблема в том, что я не могу получить AM
или PM
из строки времени даты.
Я делаю это:
moment(Mon 03-Jul-2017, 11:00 AM, 'dd-mm-yyyy hh:mm').format('hh:mm A')
и он работает нормально, поскольку я получаю 11:00 AM
, но если строка имеет PM
в нем, он все равно дает AM
в выводе.
как это, moment(Mon 03-Jul-2017, 11:00 PM, 'dd-mm-yyyy hh:mm').format('hh:mm A')
также дает 11:00 AM
в выводе вместо 11:00 PM
Ответы
Ответ 1
При синтаксическом анализе вашего ввода вы используете токены неправильного формата. Вы должны использовать ddd
для сокращения названия дня недели, DD
для дня месяца, MMM
для сокращения названия месяца, YYYY
для года, hh
для 1-12
час, mm
для минут и A
для AM/PM
. Смотрите moment(String, String)
документы.
Вот рабочий живой пример:
console.log( moment('Mon 03-Jul-2017, 11:00 AM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
console.log( moment('Mon 03-Jul-2017, 11:00 PM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
Ответ 2
Вы получите время без указания формата даты. преобразовать строку в дату, используя объект Date
var myDate = new Date('Mon 03-Jul-2017, 06:00 PM');
рабочий раствор:
var myDate= new Date('Mon 03-Jul-2017, 06:00 PM');
console.log(moment(myDate).format('HH:mm')); // 24 hour format
console.log(moment(myDate).format('hh:mm'));
console.log(moment(myDate).format('hh:mm A'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>