Как я могу преобразовать дату и время во время, используя только угловой момент?
Итак, у меня есть такие даты:
$scope.sample_time = "September 14th 2017, 1:00:00 pm";
И, на мой взгляд, я хочу показать только время, как пример 1:00 pm
,
С помощью angular-moment
Я попробовал что-то вроде {{ sample_time | amParse:'HH:mm a'}}
но я получаю 2017-09-14T06:00:00.000Z
,
Я что-то здесь упускаю? Любая помощь приветствуется.
2 ответа
Так как "September 14th 2017, 1:00:00 pm"
не является допустимой датой по умолчанию, вам необходимо сначала проанализировать ее в соответствии с используемым форматом (который 'MMMM Do YYYY, h:mm:ss a'
), тогда вы получили правильную дату и можете использовать amDateFormat для ее форматирования: amDatFormat:'HH:mm a'
{{ sample_time | amParse:'MMMM Do YYYY, h:mm:ss a' | amDateFormat: 'H:mm s'}}
плункер: http://plnkr.co/edit/RocNLPq6uBlFnccLFB8N?p=preview
Что я делаю так:
{{ getLocalDate(sample_time) | date: "hh:mm a"}}
получить локальную дату преобразует текущую дату
$scope.getLocalDate = function (date) {
return new Date(moment.utc(date));
}
и это выводит желаемый формат времени, который вы хотите.
Я не уверен, что это лучший способ. надеюсь, это поможет