AngularJS - 컨트롤러에서 날짜 변환
날짜 변환 방법을 제안해 주실 수 있나요?1387843200000
이것을 포맷하다24/12/2013
내 컨트롤러 안에?
참고로 내 날짜는 이 방법으로 저장되고 폼을 편집하기 위해 바인딩할 때input type="date"
필드가 전혀 입력되지 않았습니다.
편집 Ctrl
app.controller("EditCtrl", [ "$scope", "$filter", "db" function ($scope, $filter, db){
// this gets me an item object
var item = db.readItem();
// item date = 1387843200000
// this returns undefined
item.date = $filter('date')(date[ item.date, "dd/MM/yyyy"]);
}]);
Edit.html - 템플릿
<form name="editForm" class="form-validate">
<div class="form-group">
<label for="date">Event date.</label>
<input type="date" class="form-control" ng-model="event.date" id="date" required />
</div>
<a href="#/" class="btn btn-danger ">Cancel</a>
<button id="addEvent" class="btn btn-primary pull-right" ng-disabled="isClean() || editForm.$invalid" ng-click="saveEvent()">Save event.</button>
</form>
item.date = $filter('date')(item.date, "dd/MM/yyyy"); // for conversion to string
http://docs.angularjs.org/api/ng.filter:date
그러나 HTML5 type="date"를 사용하는 경우 ISO 형식 yyy-MM-dd를 사용해야 합니다.
item.dateAsString = $filter('date')(item.date, "yyyy-MM-dd"); // for type="date" binding
<input type="date" ng-model="item.dateAsString" value="{{ item.dateAsString }}" pattern="dd/MM/YYYY"/>
http://www.w3.org/TR/html-markup/input.date.html
메모: type="date"의 패턴="는 표준이 아닌 것처럼 보이지만 Chrome31에서는 정상적으로 동작하고 있는 것 같습니다.
filter.filter를 생성하여 재사용할 수 있습니다.
angular.module('yourmodule').filter('date', function($filter)
{
return function(input)
{
if(input == null){ return ""; }
var _date = $filter('date')(new Date(input), 'dd/MM/yyyy');
return _date.toUpperCase();
};
});
보다
<span>{{ d.time | date }}</span>
또는 컨트롤러 내
var filterdatetime = $filter('date')( yourdate );
여기의 모든 솔루션은 모델을 입력에 실제로 바인딩하지 않습니다. 왜냐하면 사용자는 이 모델을 다시 변경해야 하기 때문입니다.dateAsString
로서 보존되다date
(폼이 전송된 후 컨트롤러에서)를 선택합니다.
결합 효과는 필요 없지만 입력에 표시하기 위해
다음과 같은 경우가 있습니다.
<input type="date" value="{{ item.date | date: 'yyyy-MM-dd' }}" id="item_date" />
그런 다음 컨트롤러에 다음과 같이 편집한 날짜를 저장할 수 있습니다.
$scope.item.date = new Date(document.getElementById('item_date').value).getTime();
주의사항: 컨트롤러에서 이 명령어를 사용하여item
로서 변이하다.$scope.item
이 일을 하기 위해서요
Javascript에서 제안합니다.
var item=1387843200000;
var date1=new Date(item);
다음으로 date1은 Date입니다.
언급URL : https://stackoverflow.com/questions/20131553/angularjs-convert-dates-in-controller
'programing' 카테고리의 다른 글
다른 인수를 사용하여 동일한 URL 패턴에 대해 두 가지 메서드를 만듭니다. (0) | 2023.03.04 |
---|---|
GSON이 인터페이스 타입에 대해 타입 어댑터를 호출하지 않음 (0) | 2023.03.04 |
상위 상태 변경 후 하위 구성 요소가 업데이트되지 않음 (0) | 2023.03.04 |
Django에서 AJAX 게시 후 리다이렉트 (0) | 2023.03.04 |
중첩된 경로 angularjs를 사용할 때 "상태에서...를 해결할 수 없습니다" 오류가 표시됨 (0) | 2023.03.04 |