AngularJS - 在 Controller 中转换日期

标签 angularjs date datetime datetime-format ng-controller

有人可以建议我如何将日期从这种1387843200000格式转换为这种24/12/2013在我的 Controller 内吗?

仅供引用,我的日期以这种方式存储,并且当绑定(bind)到带有 input type="date" 字段的编辑表单时根本没有填充。

<强> #Plunker demo here.

编辑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

注意:使用 pattern=""和 type="date"看起来不标准,但它似乎在 Chrome 31 中以预期的方式工作。

关于AngularJS - 在 Controller 中转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131553/

相关文章:

javascript - Angular 服务注入(inject)不一致

angularjs - 如何在 Angular 1.5 中注入(inject)组件路由器?

AngularJS:AppLevel Controller 可能吗?

SQLite:如何从出生日期计算年龄

javascript - Chrome 的 Bootstrap 日期选择器问题

sql-server - VB.NET - 创建 Nullable(Of T) 且 HasValue = False

javascript - Angular 链接 AJAX 调用

MySQL 在 Select 语句中将日期转换为年龄

postgresql - 数据库表中日期/时间值的格式

php - 使用 Yii 自动存储日期时间