Я использую moment.js и имею приведенный ниже код в angularJS, который отображает даты. Если дата сегодня и вчера, это работает хорошо. Например: если сегодняшняя дата — 06.02.2015, она правильно отображается как «Сегодня», а 05.02.2015 — как «Вчера». Но если дата 04.02.2015, она отображается как 2015-02-04T11:20:00-06:00, а не так, как я хочу. Если дата 28.01.2015, она форматируется правильно, как указано в sameElse. Я думал, что тот же Else должен был позаботиться о днях, которые не сегодня, а вчера. Я получаю дату с сервера в формате utc. Пример: 05.02.2015 18:01:04:946
Что мне не хватает?
Вот код:
контроллер:
$scope.calDate = function(val) {
var d_val = moment(val + ' +0000','MM/DD/YYYY HH:mm:ss:SSS Z').format('LLL');
moment.locale('en', {
'calendar' : {
lastDay : '[Yesterday]',
sameDay : '[Today]',
sameElse : 'MMM D, YYYY'
}
});
return moment(new Date(d_val)).calendar();
}
HTML:
<div>{{calDate(list.dateVal)}}</div>