AngularJS - 在控制器中转换日期 [英] AngularJS - convert dates in controller
问题描述
有人可以建议我如何将日期从这个 1387843200000
格式转换成这个 24/12/2013
在我的控制器内?>
仅供参考,我的日期以这种方式存储&当根本没有填充 input type="date"
字段绑定到编辑表单时.
Could anyone please suggest me how to convert date from this 1387843200000
format into this 24/12/2013
inside my controller?
编辑控件
EditCtrl
Edit.html - 模板
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 - template
<a href="#/" class="btn btn-danger ">取消</a><button id="addEvent" class="btn btn-primary pull-right" ng-disabled="isClean() || editForm.$invalid" ng-click="saveEvent()">保存事件.</按钮></表单>
<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.
But if you are using HTML5 type="date" then the ISO format yyyy-MM-dd MUST be used.
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-标记/input.date.html
注意:使用 pattern="" 和 type="date" 看起来不标准,但它似乎在 Chrome 31 中以预期的方式工作.
NOTE: use of pattern="" with type="date" looks non-standard, but it appears to work in the expected way in Chrome 31.
这篇关于AngularJS - 在控制器中转换日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!