Javascript Angularjs-显示当前日期
我在angularjs中得到了一个视图,我正在尝试显示当前日期(格式化)。我认为类似于Javascript Angularjs-显示当前日期,javascript,angularjs,Javascript,Angularjs,我在angularjs中得到了一个视图,我正在尝试显示当前日期(格式化)。我认为类似于{{Date.now()|Date:'yyyyy-MM-dd'}}的内容应该显示当前日期。您必须首先在控制器中创建一个日期对象: 控制器: function Ctrl($scope) { $scope.date = new Date(); } var app = angular.module('myApp', []); app.controller( 'MyCtrl', ['$scope', f
{{Date.now()|Date:'yyyyy-MM-dd'}}
的内容应该显示当前日期。您必须首先在控制器中创建一个日期对象:
控制器:
function Ctrl($scope)
{
$scope.date = new Date();
}
var app = angular.module('myApp', []);
app.controller( 'MyCtrl', ['$scope', function($scope) {
$scope.date = new Date();
}]);
$scope.DateOfBirth = new Date();
视图:
{{date}日期:'yyyy-MM-dd'}
好的,您可以使用mustache表达式(
{{Date.now()|Date:'dd.MM.yyyy HH:MM:ss'}}}
)。您只需要将日期对象指定给要计算此表达式的范围
以下是JSFIDLE示例:
但不要期望它自动更新值。angular不监视此值,因此每次要更新它时都必须触发摘要(例如$interval)…这是资源浪费(在文档中也不“推荐”)。当然,您可以使用与指令/控制器的组合来只处理子作用域(它总是比例如rootScope更小,而digest会更快)。如果有人无意中发现了这一点,只需我的2美分:) 我在这里提出的建议将与当前的答案具有相同的结果,但是建议按照我在这里提到的方式编写控制器 滚动至第一个“注意事项”(抱歉,它没有锚定) 以下是推荐的方法: 控制器:
function Ctrl($scope)
{
$scope.date = new Date();
}
var app = angular.module('myApp', []);
app.controller( 'MyCtrl', ['$scope', function($scope) {
$scope.date = new Date();
}]);
$scope.DateOfBirth = new Date();
视图:
{{date}日期:'yyyy-MM-dd'}
如果不希望每次打印日期时都必须将日期对象附加到当前范围,也可以使用筛选器执行此操作:
.filter('currentdate',['$filter', function($filter) {
return function() {
return $filter('date')(new Date(), 'yyyy-MM-dd');
};
}])
在你看来:
<div ng-app="myApp">
<div>{{'' | currentdate}}</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>
查看:
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>
{{date}}
模板
<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
对象(对于内联解决方案),所以我选择了这个指令。它还可以保持控制器的清洁并可重复使用。查看
<div ng-app="myapp">
{{AssignedDate.now() | date:'yyyy-MM-dd HH:mm:ss'}}
</div>
解决方案类似于使用过滤器,但使参数有意义:
实现一个名为relativedate
的过滤器,该过滤器通过给定参数计算相对于当前日期的日期,作为差异。因此,(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>
昨天:{-1}相对的}
今天:{0 | relativedate}
明天:{1}相对的}
另一种方法是:
在控制器中,创建一个变量以保存当前日期,如下所示:
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>
{{myDate}日期:'yyyy-MM-dd'}
var app=angular.module('sampleapp',[])
app.controller('samplecontrol',函数($scope){
var today=新日期();
log($scope.cdate);
var date=today.getDate();
var month=today.getMonth();
var year=today.getFullYear();
var当前日期=日期+'/'+月+'/'+年;
console.log(当前_日期);
});
它会。。但是它不知道Date.now()
。所以我必须首先在控制器中生成变量?我认为像当前日期这样简单的事情会更容易:)date.now()
is nodeJSfunction@Nay不,不是,他也可以发出一个指令,然后hi@sloth我想用cgi显示当前的系统时间。我怎么可能做到呢?或者可能吗?Thanks@Billa,我已更新了我的代码段。我希望,它现在更具描述性。