我是AngularJS的新手,因为我有开始日期和结束日期的项目。如果两者的年/月/日相同,我希望仅显示结束日期的时间(HH.mm)。如果他们不同,我想展示一切。像这样:
{{item.bDate | date:'dd.MM.yyyy HH:mm'}} - {{item.eDate | date:'dd.MM.yyyy HH:mm' }}
有关如何做到这一点的任何提示?
答案 0 :(得分:4)
将您的HTML更改为:
{{item.bDate | date: getDateFormat(item.bDate, item.eDate) }}-
{{item.eDate | date: getDateFormat(item.bDate, item.eDate) }}
并在您的控制器中创建此功能:
$scope.getDateFormat = function(bDate,eDate){
var beginDate = new Date(bDate);
var endDate = new Date(eDate);
if (beginDate.getDate() == endDate.getDate())
return 'HH:mm';
else
return 'dd.MM.yyyy HH:mm';
}
答案 1 :(得分:2)
您可以创建新的自定义过滤器:
.filter('enddate', function($filter){
var filterDate = $filter('date');
function datesEqual(endDate, startDate){
return endDate.getDate() == startDate.getDate() &&
endDate.getMonth() == startDate.getMonth() &&
endDate.getYear() == startDate.getYear();
}
return function(endDate, startDate){
return datesEqual(endDate,startDate) ? filterDate(endDate, 'HH:mm') : filterDate(endDate, 'dd.MM.yyyy HH:mm');
};
})
查看:
{{item.bDate | date:'dd.MM.yyyy HH:mm' }} - {{item.eDate | enddate: item.bDate}}