Cómo analizar cadenas en fecha en angularjs

2 minutos de lectura

avatar de usuario
KK SK

Tengo datos del servidor para mostrar. Recibo cadenas como esta: 2016-05-01. Necesito filtrar los datos entre dos fechas en ese formato. Tengo una función para analizar la fecha tal como es:

$scope.parseDate = function (date) {
  return new Date(Date.parse(date));
} 

En mi html muestro la fecha con esto:

{{ parseDate(item.startDate) }}`

Pero en el navegador, el resultado es: "2016-07-12T00:00:00.000Z".

  1. Necesito analizar la cadena en el mismo formato que desde el servidor: 2016-05-01.

  2. Necesito una función de filtro simple.

no quiero usar moment.js. Mi plataforma backend es JavaScript.

  • Posible duplicado de la fecha de cambio de Javascript al formato de (dd/mm/yyyy)

    – ElCog19

    18 de septiembre de 2017 a las 12:48

  • si desea mostrar el exacto del servidor. luego mostrar como es. No puedo entender lo que estás tratando de hacer.

    – Sibiraj

    18 de septiembre de 2017 a las 12:49

  • ¿Cuál es el formato que desea outpt?

    – guantes de fuego

    18 de septiembre de 2017 a las 12:49


Prueba esto en tu html:

{{item.startDate | date: 'MMM dd, yyyy'}}

Puede usar el filtro AngularJS como se muestra a continuación:

$scope.parseDate = function (date) {
    $filter('date')(new Date(Date.parse(date)), 'yyyy-MM-dd');
} 

avatar de usuario
guantes de fuego

Algo como

function(date) {
   var d = new Date(Date.parse(date));
   return d.getDate() + " " + d.getMonth() + " " + d.getFullYear();
}

Obviamente, depende del formato de fecha que desee generar.

Tenga en cuenta que una función no es la mejor manera de formatear una fecha en angular porque se ejecutará continuamente y eso causará un problema de mal rendimiento. Deberías usar un filtro como este.

app.filter('mydate', function () {
    return function (input) {
        if (input) {

        var d = new Date(input);
        return d.getDate() + " " + d.getMonth() + " " + d.getFullYear();

    }
};
});

En su archivo HTML intente usar

{{ parseDate(item.startDate) | date:'yyyy-MM-dd'}}

Puedes usar incorporado date filtro que proporciona Angular.

Algo como esto;

{{ date_variable | date:'dd-mm-yyyy' }}

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad