Дата GroupBy с использованием библиотеки angular-filter

Я использую GroupBy angular-filter lib для группировки данных в ng-repeat. Проблема в том, что дата представлена ​​как: 2015-10-09T19:00:00+0200. Таким образом, данные также будут сгруппированы по часам и минутам, а не только по дате.

<div ng-repeat="(key, value) in events.data | groupBy: 'startTime'">

Как исключить часы и взять только даты?

Спасибо.


person Jack    schedule 07.10.2015    source источник
comment
Не совсем уверен, что добавление дополнительной пары библиотек для работы с датами является вариантом, но если это так, я настоятельно рекомендую momentJs momentjs.com и угловая оболочка для него angular-moment github.com/urish/angular-moment. Они предоставляют мощные и простые методы для решения проблемы, связанной с датами JavaScript. Оболочка angular предоставляет фильтры для форматирования дат, среди прочего, которые вы можете передать в groupBy или orderBy. Это означает, что вам не нужно развертывать свои собственные.   -  person ste2425    schedule 07.10.2015
comment
@ste2425 ste2425 На самом деле, на данный момент я в порядке, используя фильтр дат angular, если он станет более сложным, я рассмотрю возможность использования moment.js. Спасибо.   -  person Jack    schedule 07.10.2015


Ответы (1)


Вы можете создать метод форматирования для дат в контроллере и использовать его при группировке.

E.g

vm.formatDate(datetime) — это наш метод форматирования в контроллере.

<div ng-repeat="(key, value) in events.data | groupBy: 'vm.formatDate(startTime)'">

Я надеюсь, что это помогает.

person Yepo    schedule 07.10.2015