Dar formato a fecha AngularJS

publicado por: Anonymous

Estoy sacando de un API varios datos de una persona y necesito dar formato a una fecha.

Al hacer la llamada al API para sacar la fecha

vm.preconcedido.datosPersona.datosPersonales.fechaNacimiento

Me aparece la fecha tal que así 1961-05-29T00:00:00.000+0100

He intentado dar el formato con el

.format(DD/mm/AAAA);

y no me formatea correctamente la fecha.

¿Cómo podría dar el formato correcto a dicha fecha?

Muchas gracias, un saludo

solución

De forma nativa AngularJS tiene el filtro date, en el que sólo debes específicar el formato deseado. Ahora bien, si sólo quieres utilizar la forma nativa de Javascript deberás obtener día, mes (a este se le debe sumar 1, ya que Enero cuenta como el mes 0) y año por separado y concatenarlos en una variable; y por último si usas momentjs sólo específicas el formato con la función format('formatoDeseado').

Te dejo los ejemplos

_x000D_

_x000D_

var app = angular.module('app', []);_x000D_
app.controller('ctrl', ['$scope', function($scope){_x000D_
  $scope.fecha1 = new Date();_x000D_
  $scope.fecha2 = new Date().getDate() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getFullYear();_x000D_
  $scope.fecha3 = moment().format('DD-MM-YYYY');_x000D_
}])

_x000D_

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet"/>_x000D_
_x000D_
<div class="container" ng-app="app" ng-controller="ctrl">_x000D_
  <label class="control-label text-success">Forma nativa AngularJS -> {{fecha1 | date: 'dd-MM-yyyy'}}</label>_x000D_
  <br>_x000D_
  <label class="control-label text-danger">Forma nativa Javascript -> {{fecha2}}</label>_x000D_
  <br>_x000D_
  <label class="control-label text-info">Forma momentJS -> {{fecha3}}</label>_x000D_
</div>_x000D_
_x000D_
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.2/angular.min.js"></script>_x000D_
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *