Ниже код выводит сегодня дату и еще 7 дней, например 2016-02-01, 2016-02-02, 2016-02-03, 2016-02-04 и т.д., Но на сегодняшний день я не хочу показывать дату пользователю но слово "Сегодня", однако, мне нужны значения в формате даты, поскольку я хочу заполнить его в базе данных при отправке формы.
<select ng-model="item1" style=" width:100%; text-align:center;" ng-change="update()">
<option style="text-indent:30%" ng-repeat="item1 in IdeaMonth" value="{{item1.one | date:'yyyy-MM-dd' }}" >
{{item1.one | date:'dd-MM-yyyy' }}
</option>
</select>
Вам нужен ваш настраиваемый фильтр, где вы можете использовать moment
или тот же самый угловой фильтр даты js, чтобы получить необходимое значение:
function compareDateParts(a, b)
{
var aMSec, bMSec;
a = new Date(a);
b = new Date(b);
a.setHours(0,0,0,0);
b.setHours(0,0,0,0);
aMSec = a.getTime();
bMSec = b.getTime();
return aMSec == bMSec ? 0 : (aMSec > bMSec ? 1 : -1);
}
angular.module('app').filter('customDate', ['$filter', function($filter) {
return function(date, format) {
if(compareDateParts(date, new Date()) == 0) return "TODAY"
return $filter('date')(date, format);
};
}]);
Использование {{date | customDate: 'dd-MM-yyyy'}}
{{date | customDate: 'dd-MM-yyyy'}}
angular.module('myApp', [...])
и использовать имя этого модуля в моем решении.