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>