Angularjs - 显示当前日期

Evo*_*o_x 125 javascript angularjs

我在angularjs中有一个视图,我只是想显示当前日期(格式化).我认为<span>{{Date.now() | date:'yyyy-MM-dd'}}</span>应该显示当前日期.

slo*_*oth 225

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

控制器:

function Ctrl($scope)
{
    $scope.date = new Date();
}
Run Code Online (Sandbox Code Playgroud)

视图:

<div ng-app ng-controller="Ctrl">
    {{date | date:'yyyy-MM-dd'}}
</div>
Run Code Online (Sandbox Code Playgroud)

JSFiddle示例

角度日期过滤器参考


Nic*_* G. 44

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

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

然后在你看来:

<div ng-app="myApp">
    <div>{{'' | currentdate}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 他也可以做​​一个指示 (5认同)

flo*_*ori 23

模板

<span date-now="MM/dd/yyyy"></span>
Run Code Online (Sandbox Code Playgroud)

指示

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

因为您无法Date在模板中直接访问对象(对于内联解决方案),所以我选择了此指令.它还可以使您的控制器保持清洁并可重复使用.


Jak*_*lik 19

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

这是jsfiddle的例子:jsfiddle

但是不要指望它会自动更新值.这个值不是由角度监视的,因此每次你想要更新它时都必须触发摘要(例如,按$ interval)...这是浪费资源(在文档中也没有"推荐").当然,你可以使用与指令/控制器的组合来混淆子范围(它总是小于例如rootScope和摘要会更快).


Mr *_*r H 9

只是我的2美分万一有人偶然发现这个:)

我在这里建议的结果与当前的答案相同,但是建议按照我在这里提到的方式编写控制器.

参考滚动到第一个"注意"(抱歉它没有锚)

这是推荐的方式:

控制器:

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

视图:

<div ng-app="myApp">
  <div ng-controller="MyCtrl">
    {{date | date:'yyyy-MM-dd'}}
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)