Angularjs-현재 날짜 표시


128

angularjs에서 볼 수 있으며 현재 날짜를 표시하려고합니다 (형식화). <span>{{Date.now() | date:'yyyy-MM-dd'}}</span>현재 날짜를 표시해야 한다고 생각했습니다 .


그것은 .. 그러나 그것은 모른다 Date.now().
putvande

2
그래서 컨트롤러에서 변수를 먼저 생성해야합니까? 나는 현재 날짜와 같은 간단한 것이 더 쉬울 것이라고 생각했습니다 :)
Evo_x

1
Date.now()is nodeJS function
Nay

답변:


229

먼저 컨트롤러에서 날짜 개체를 만들어야합니다.

제어 장치:

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

전망:

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

JSFiddle 예제

각도 날짜 필터 참조


안녕 @ 슬로 현재 시스템 시간을 표시하기 위해 cgi를 사용하고 싶습니다. 고맙습니다
bleyk

44

날짜를 인쇄 할 때마다 날짜 범위를 현재 범위에 첨부하지 않으려는 경우 필터를 사용하여이 작업을 수행 할 수도 있습니다.

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

그리고 당신의 관점에서 :

<div ng-app="myApp">
    <div>{{'' | currentdate}}</div>
</div>

5
그는 또한 지시를 할 수있다
arg20

23

주형

<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인라인 솔루션의 경우 템플릿에서 개체에 직접 액세스 할 수 없으므로이 지침을 선택했습니다. 또한 컨트롤러를 깨끗하게 유지하고 재사용 할 수 있습니다.


19

콧수염 표현 ( {{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}})으로 할 수 있습니다 . 이 식을 평가하려는 범위에 Date 개체를 지정하면됩니다.

다음은 jsfiddle 예제입니다. jsfiddle

그러나 값이 자동으로 업데이트 될 것으로 기대하지 마십시오. 이 값은 앵귤러에 의해 감시되지 않으므로 (예를 들어 $ interval에 의해) 업데이트 될 때마다 다이제스트를 트리거해야합니다. 이것은 리소스 낭비입니다 (문서에서 "권장"되지 않음). 물론 지시문 / 컨트롤러와의 조합을 사용하여 하위 범위 만 엉망으로 만들 수 있습니다 (예 : 항상 rootScope보다 작고 요약이 빠릅니다).


9

누군가가 이것을 우연히 발견 한 경우에 대비하여 내 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>

2

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>

2
<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>


1

전망

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

1

필터를 사용하여 @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>

1

다른 방법은 다음과 같습니다. 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>

@Billa, 코드 스 니펫을 업데이트했습니다. 지금은 더 설명하기를 바랍니다.
Sunita
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.