Javascript 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

我在angularjs中得到了一个视图,我正在尝试显示当前日期(格式化)。我认为类似于
{{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,我已更新了我的代码段。我希望,它现在更具描述性。