我的约会时间为“2017-04-03 05:00:07”。我需要检查日期是今天的日期。如果是今天的日期,我需要显示为今天或时间。
如果是昨天需要显示为昨天或日期为“MMM dd”
如果是上个月或今年那么,“MMM dd”。
如果是去年那么dd / mm / yyyy
我尝试使用指令显示这样但这对我不起作用。
还有其他方法吗?
app.directive('myDirective', function($filter) {
return {
restrict: "A",
scope: {
myDirective: '='
},
link: function(scope, element, attrs) {
var date1 = new Date(scope.myDirective.updateddate);
var date2 = new Date();
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
if (diffDays == 1) {
scope.myDirective.updateddate = 'yesterday'
} else if (diffDays > 2 && diffDays <= 365) {
scope.myDirective.updateddate = $filter('date') scope.myDirective.updateddate, 'dd-MMM');
}
else if (diffDays > 365) {
scope.myDirective.updateddate = $filter('date') scope.myDirective.updateddate, 'dd-MM-YYYY');
} });
答案 0 :(得分:1)
答案 1 :(得分:0)
使用custom filter是最正确的方法。
您可以像指令一样定义过滤器:
app.filter('myfilternamehere', function() {
return function(input) {
//do some stuff that creates the correct output
return output;
}
});
我创建了一个JSFiddle,其中可能包含您的问题的解决方案,同时向您展示如何更详细地创建自定义指令。