117

1387843200000誰かがこの形式から24/12/2013 コントローラ内でこれに日付を変換する方法を教えてもらえますか?

参考までに、私の日付はこの方法で保存され、input type="date"フィールドを使用して編集フォームにバインドすると、まったく入力されません。

#Plunker のデモはこちら。

編集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>
4

4 に答える 4

16

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 );

Angular js での日付のフィルタリングと書式設定。

于 2014-04-08T10:06:12.827 に答える
1

私はJavascriptで提案します:

var item=1387843200000;
var date1=new Date(item);

そして、date1 は日付です。

于 2015-10-14T01:59:52.610 に答える
1

ここでのすべてのソリューションは、実際にはモデルを入力にバインドしません。これは、フォームが送信された後にコントローラーでオブジェクト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

于 2015-09-25T15:42:47.347 に答える