Angularjs – 显示当前date

我得到了一个在angularjs中的视图,我只是试图显示当前的date(格式)。 我认为像<span>{{Date.now() | date:'yyyy-MM-dd'}}</span> <span>{{Date.now() | date:'yyyy-MM-dd'}}</span>应显示当前date。

您必须先在您的控制器中创build一个date对象:

控制器:

 function Ctrl($scope) { $scope.date = new Date(); } 

视图:

 <div ng-app ng-controller="Ctrl"> {{date | date:'yyyy-MM-dd'}} </div> 

JSFiddle示例

angular度datefilterRef

如果您不想在每次打印date时都要将date对象附加到当前范围,则还可以使用filter来执行此操作:

 .filter('currentdate',['$filter', function($filter) { return function() { return $filter('date')(new Date(), 'yyyy-MM-dd'); }; }]) 

然后在你看来:

 <div ng-app="myApp"> <div>{{'' | currentdate}}</div> </div> 

那么,你可以用胡子expression式来做( {{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}} )。 您只需将Date对象分配给您想要评估此expression式的范围。

这里是jsfiddle的例子: jsfiddle

但不要指望它自动更新值。 这个值没有被angular度监视,所以你必须触发摘要每次你想得到更新(例如$间隔)…这是资源的浪费(也不是在文档中的“推荐”)。 当然,您可以使用与指令/控制器的组合来混淆子范围(它总是小于例如rootScope,摘要将更快)。

模板

 <span date-now="MM/dd/yyyy"></span> 

指示

 .directive('dateNow', ['$filter', function($filter) { return { link: function( $scope, $element, $attrs) { $element.text($filter('date')(new Date(), $attrs.dateNow)); } }; }]) 

可悲的是似乎没有办法访问内联解决scheme的模板中的Date对象。 由于我也想保持我的控制器清洁,我select了一个指令。

只是我的2美分,以防有人绊倒在这:)

我在这里提出的build议与现在的答案有相同的结果,但是build议按照我在这里提到的方式编写你的控制器。

参考滚动到第一个“注” (抱歉它没有锚点)

这里是推荐的方法:

控制器:

 var app = angular.module('myApp', []); app.controller( 'MyCtrl', ['$scope', function($scope) { $scope.date = new Date(); }]); 

视图:

 <div ng-app="myApp"> <div ng-controller="MyCtrl"> {{date | date:'yyyy-MM-dd'}} </div> </div> 

你可以在AngularJS中使用moment()format()函数。

控制器:

 var app = angular.module('demoApp', []); app.controller( 'demoCtrl', ['$scope', '$moment' function($scope , $moment) { $scope.date = $moment().format('MM/DD/YYYY'); }]); 

视图:

 <div ng-app="demoApp"> <div ng-controller="demoCtrl"> {{date}} </div> </div> 

以下是您的答案示例: http : //plnkr.co/edit/MKugkgCSpdZFefSeDRi7?p=preview

 <span>Date Of Birth: {{DateOfBirth | date:"dd-MM-yyyy"}}</span> <input type="text" datepicker-popup="dd/MM/yyyy" ng-model="DateOfBirth" class="form-control" /> 

然后在控制器中:

 $scope.DateOfBirth = new Date(); 

视图

 <div ng-app="myapp"> {{AssignedDate.now() | date:'yyyy-MM-dd HH:mm:ss'}} </div> 

调节器

var app = angular.module('myapp',[])

 app.run(function($rootScope){ $rootScope.AssignedDate = Date; }) 

通过使用filter,类似于@Nick G.的解决scheme,但使参数有意义:

实现一个名为relativedate的filter,它通过给定的参数作为diff来计算相对于当前date的date。 因此, (0 | relativedate)表示今天, (1 | relativedate)表示明天。

 .filter('relativedate', ['$filter', function ($filter) { return function (rel, format) { let date = new Date(); date.setDate(date.getDate() + rel); return $filter('date')(date, format || 'yyyy-MM-dd') }; }]); 

和你的html:

 <div ng-app="myApp"> <div>Yesterday: {{-1 | relativedate}}</div> <div>Today: {{0 | relativedate}}</div> <div>Tomorrow: {{1 | relativedate}}</div> </div>