[angularjs] 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 형식 yyyy-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”와 함께 pattern = “”을 사용하는 것은 비표준으로 보이지만 Chrome 31에서 예상대로 작동하는 것으로 보입니다.
답변
filter.js를 만들고이를 재사용 가능하게 만들 수 있습니다.
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은 날짜입니다.