Как я могу преобразовать дату и время во время, используя только угловой момент?

Итак, у меня есть такие даты:

$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));
    }

и это выводит желаемый формат времени, который вы хотите.

Я не уверен, что это лучший способ. надеюсь, это поможет

Другие вопросы по тегам