AngularJS. Converter valor da tag (hora Unix para hora legível)

Estou recebendo dados de um database e exibindo-o:

  • {{item.date}}

Onde {{item.date}} é uma data Unix como 1374843600. Como posso definir o formato de data usando diretivas AngularJS? É possível?

Quando tentei fazer isso, recebi um valor de tag mydate – {{item.date}}

Use o date filter formato como este:

 {{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}} 

Referência

Eu enfrentei o problema com o tempo unix formatado como um número de segundos desde o início da época ou como um número de milissegundos que é usado em JavaScript. Então, estritamente falando, o AngularJS não converte o timestamp Unix para Date, mas um número com milissegundos, que é 1000 vezes maior, então primeiro você terá que multiplicar seu número de input por 1000, assim:

 {{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}} 

Caso contrário, sua data estará errada.

Se você tiver um timestamp do Unix, provavelmente precisará multiplicar seu timestamp por 1.000, já que o timestamp do Unix está em segundos e o filtro de data do AngularJs precisa de milissegundos.

 vm.milliseconds = Date('1441981121' * 1000); 

então use a function $ filter ()

 var date = $filter('date')(vm.milliseconds, 'd MMMM yyyy'); 

ou você pode usar em ng-bind

  

Você deve usar o filtro de data que já é fornecido pelo angular: aqui

  yourapp.filter('timestampToDate', function () { return function (timestamp) { var date = new Date(timestamp * 1000); var dateObject = date.getFullYear() +'/'+ ('0' + (date.getMonth() + 1)).slice(-2) +'/'+ ('0' + date.getDate()).slice(-2); return dateObject; }; }); 

Uso:
{{timestamp | timestampToDate}}

Existe uma diretiva para o chamado rsTime.

   

Verifique a demonstração no Plunker .

Abaixo estão os diferentes formatos de tempo:

  M/d/y - 11/7/2016 HH:mm:ss - 16:02:31 (24hrs formate) hh:mm:ss TT - 04:03:10 PM ddd MMM dh:mm TT - Mon Nov 7 at 4:04 PM 

Para documentação, visite o Github