답변:
먼저 컨트롤러에서 날짜 개체를 만들어야합니다.
제어 장치:
function Ctrl($scope)
{
$scope.date = new Date();
}
전망:
<div ng-app ng-controller="Ctrl">
{{date | date:'yyyy-MM-dd'}}
</div>
날짜를 인쇄 할 때마다 날짜 범위를 현재 범위에 첨부하지 않으려는 경우 필터를 사용하여이 작업을 수행 할 수도 있습니다.
.filter('currentdate',['$filter', function($filter) {
return function() {
return $filter('date')(new Date(), 'yyyy-MM-dd');
};
}])
그리고 당신의 관점에서 :
<div ng-app="myApp">
<div>{{'' | currentdate}}</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
인라인 솔루션의 경우 템플릿에서 개체에 직접 액세스 할 수 없으므로이 지침을 선택했습니다. 또한 컨트롤러를 깨끗하게 유지하고 재사용 할 수 있습니다.
콧수염 표현 ( {{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}}
)으로 할 수 있습니다 . 이 식을 평가하려는 범위에 Date 개체를 지정하면됩니다.
다음은 jsfiddle 예제입니다. jsfiddle
그러나 값이 자동으로 업데이트 될 것으로 기대하지 마십시오. 이 값은 앵귤러에 의해 감시되지 않으므로 (예를 들어 $ interval에 의해) 업데이트 될 때마다 다이제스트를 트리거해야합니다. 이것은 리소스 낭비입니다 (문서에서 "권장"되지 않음). 물론 지시문 / 컨트롤러와의 조합을 사용하여 하위 범위 만 엉망으로 만들 수 있습니다 (예 : 항상 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>
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>
<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>
다음은 귀하의 답변 샘플입니다 : 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();
필터를 사용하여 @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>
Date.now()
.