Angularjs-显示当前日期

我得到了一个 angularjs 的视图,我只是想显示当前的日期(格式化)。我认为像 <span>{{Date.now() | date:'yyyy-MM-dd'}}</span>这样的东西应该显示当前的日期。

419697 次浏览

您必须首先在控制器中创建一个日期对象:

控制器:

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

观点:

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

JSFiddle 的例子

角度数据滤波器参考文献

你可以用胡子表情(\{\{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}})。您只需要将 Date 对象指定到要计算此表达式的作用域。

下面是 jsfiddle 的例子: Jsfiddle

但不要指望它会自动更新值。这个值不是通过棱角来观察的,所以每次你想要更新它的时候,你必须触发摘要... 这是浪费资源(在文档中也不是“推荐”的)。当然,您可以使用与指令/控制器的组合,以便只使用子范围(它总是比例如 rootScope 更小,并且摘要会更快)。

只是我的2分钱,以防有人偶然发现这个:)

我在这里建议将有相同的结果作为当前的答案,然而,它已被推荐编写您的控制器的方式,我在这里提到。

引用 滚动到第一个 “备注”(对不起,它没有锚)

以下是建议的方法:

总监:

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>

如果不希望每次打印日期时都必须将日期对象附加到当前作用域,也可以使用筛选器进行此操作:

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

然后在你看来:

<div ng-app="myApp">
<div>\{\{'' | currentdate}}</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();

可以在 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>

模板

<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));
}
};
}])

因为不能在模板中直接访问 Date对象(对于内联解决方案) ,所以我选择了这个 Directive。它还可以使控制器保持清洁并且可重用。

观景

<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;
})

一个类似于 “ Nick G”的那张。的解决方案,使用过滤器,但使参数有意义:

实现一个名为 relativedate的过滤器,该过滤器根据给定的参数以 diff 形式计算相对于当前日期的日期。因此,(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>

另一种方法是: 在 Controller 中,创建一个变量来保存当前日期,如下所示:

var eventsApp = angular.module("eventsApp", []);
eventsApp.controller("EventController", function EventController($scope)
{


$scope.myDate = Date.now();


});

在 HTML 视图中,

<!DOCTYPE html>
<html ng-app="eventsApp">
<head>
<meta charset="utf-8" />
<title></title>
<script src="lib/angular/angular.js"></script>
</head>
<body>
<div ng-controller="EventController">
<span>\{\{myDate | date : 'yyyy-MM-dd'}}</span>
</div>
</body>
</html>
<script type="text/javascript">
var app = angular.module('sampleapp', [])
app.controller('samplecontrol', function ($scope) {
var today = new Date();
console.log($scope.cdate);
var date = today.getDate();
var month = today.getMonth();
var year = today.getFullYear();
var current_date = date+'/'+month+'/'+year;
console.log(current_date);
});
</script>