2015-06-02 1 views
1

Я используюПочему использование Angular Moment возвращает весь январь в ng-repeat?

<div ng-repeat="usage in previousUsage" 
    <p>{{usage.Month | amDateFormat : 'MMMM' }}</p> 
</div> 

данные usage.Month являются числами 1-12 Данные возвращает января

+1

'amDateFormat' вероятно, ожидает метку времени. .. поэтому форматирование от 1 до 12 миллисекунд после 1970-01-01 => Январь. –

ответ

1

amDateFormat рассчитывает получить дату в качестве значения. Не обязательно временная метка, но любой объект, который moment.js сможет создать объект moment из объекта (Date объекта, строки, метки времени в миллисекундах и т. Д.).

Когда вы используете число от 1 до 12 в качестве вашего ввода, момент увидит его (как прокомментировал @ pavel-horal) как количество миллисекунд, прошедшее с начала 1970-01-01 годов. Затем вы используете фильтр для отображения месяца, и вы получите январь.

0

Спасибо, ребята,

Я просто сделал

<div ng-repeat="usage in previousUsage" 
     <p>{{dateFilter(usage.Month) | amDateFormat : 'MMMM' }}</p> 
</div> 

$scope.dateFilter = function(month) { 
     var objDate = new Date(month); 
     return objDate; 
}; 

Что-то вдоль этих линий - он вернулся обратно в январе, феврале, марте, и т.д. ...

Смежные вопросы