Мои даты выходят из базы данных, выглядящей так: 2013-11-21 17:43:20
Я пытаюсь использовать фильтр даты Angular, чтобы превратить их в нечто более красивое, но...
{{Objected.created | date:'shortDate'}}
или
{{Objected.created | date:'YYYY'}}
... просто выплевывает исходную строку datetime: 2013-11-21 17:43:20
. Ошибок нет. Что я делаю неправильно?
Обновление Я вижу, что время datetime по умолчанию MySQL несовместимо с тем, что ожидает фильтр данных Angular. Я пытаюсь преобразовать его на лету, как это, но он бросает ошибки:
<li ng-repeat="result in data">{{ new Date(result.Job.created).toISOString() | date:'shortDate'}}</li>
Я подозреваю, что не могу создать экземпляр класса Date так, как я пытаюсь. Ошибка - синтаксическая ошибка $parse:
Обновление
Благодаря помощи @m59 я получил работу с несколькими незначительными настройками...
HTML:
<html ng-app="myApp">
...
{{Object.created | dateToISO | date:'shortDate'}}
JS:
var myApp = angular.module('myApp',[]);
myApp.filter('dateToISO', function() {
return function(input) {
input = new Date(input).toISOString();
return input;
};
});
Этот настраиваемый фильтр преобразует значение datetime MySQL по умолчанию в формат, который ожидает фильтр даты, поэтому я посылаю его, чтобы отправить его затем другой и "вуаля".