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.