AngularJS – converter datas no controlador

Alguém poderia me sugerir como converter data deste formato 1387843200000 para este 24/12/2013 dentro do meu controlador ?

Apenas FYI minhas datas são armazenadas desta forma e quando a binding para editar o formulário com o campo input type="date" não está sendo preenchida em tudo.

#Plunker demo aqui.

EditCtrl

 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

  
Cancel

     item.date = $filter('date')(item.date, "dd/MM/yyyy"); // for conversion to string 

    http://docs.angularjs.org/api/ng.filter:date

    Mas se você estiver usando o tipo HTML5 = “data”, então o formato ISO aaaa-MM-dd DEVE ser usado.

     item.dateAsString = $filter('date')(item.date, "yyyy-MM-dd"); // for type="date" binding  

    http://www.w3.org/TR/html-markup/input.date.html

    OBSERVAÇÃO: o uso de pattern = “” com type = “date” parece não-padrão, mas parece funcionar da maneira esperada no Chrome 31.

    criar um filter.js e você pode fazer isso como reutilizável

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

    Visão

     {{ d.time | date }} 

    ou no controlador

     var filterdatetime = $filter('date')( yourdate ); 

    Filtragem e formatação de data em js angular.

    Todas as soluções aqui realmente não vinculam o modelo à input porque você terá que alterar novamente o dateAsString a ser salvo como date em seu object (no controlador após o formulário ser enviado).

    Se você não precisa do efeito de binding, mas apenas para mostrá-lo na input,

    um simples pode ser:

      

    Então, se você quiser, no controlador, você pode salvar a data editada desta forma:

      $scope.item.date = new Date(document.getElementById('item_date').value).getTime(); 

    esteja ciente: em seu controlador, você deve declarar sua variável de item como $scope.item para que isso funcione.

    eu sugiro em Javascript:

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

    e, em seguida, date1 é uma data.