Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

144
Vistas
ionic 2 ion-datetime Problema de formato ISO

Estoy usando ion-datetime para mi formulario de cita. Al insertarlo funciona bien sin ningún problema. Pero cuando necesito actualizar los detalles del formulario de fecha de la cita insertada desde el back-end, el valor de la fecha no se muestra en ion-datetime.

A continuación se muestra mi código:

actualizar.html :

 <ion-item class="border-bottom"> <ion-label class="ionselect" >Appointment Date:</ion-label> <ion-datetime name="appdate" displayFormat="YYYY MMM DD" [(ngModel)]="leadDetailsUpdate.appt_date"></ion-datetime> </ion-item>

actualizar.ts :

 leadDetailsUpdate={ appt_date:'' };

El formato de fecha que obtengo del back-end es el siguiente: appt_date: "2017-01-01"

A continuación se muestra el mensaje de error que recibo en la consola:

Error parsing date: "null". Please provide a valid ISO 8601 datetime format: https://www.w3.org/TR/NOTE-datetime

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

convertirlo a formato ISO antes de mostrar

 var date = new Date('2017-01-01').toISOString() console.log(date)

about 4 years ago · Santiago Trujillo Denunciar

0

Incluso Gaurav tiene razón, descubrí que si su zona horaria no es +0, puede tener problemas con eso. Encontré en alguna parte esta solución:

 let tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds this.startTime = (new Date(this.myStartTime - tzoffset)).toISOString().slice(0,-1);

Luego en mi HTML lo tengo así:

 <ion-datetime displayFormat="HH:mm" [(ngModel)]="startTime" (ionChange)="changeCheckOutStartTime()" style="padding-left: 21px"></ion-datetime>

Y en el método changeCheckOutStartTime() , me tomo el tiempo y creo un momento:

 changeCheckOutStartTime() { this.myStartTime = moment(this.startTime).toDate(); }
about 4 years ago · Santiago Trujillo Denunciar

0

Usando el formato ISO antes de mostrar, así:

 this.myDate = new Date('2017-01-01').toISOString()

Nos dará una diferencia de horas, cada navegador haría algo diferente. En mi caso tuve una diferencia de 5 horas (16/12/17 02:00 sería 16/12/17 07:00).

Una mejor manera sería usar el momento como recomendaciones iónicas en su documentación ( https://ionicframework.com/docs/api/components/datetime/DateTime/#advanced-datetime-validation-and-manipulation )

Ejemplo:

  1. Abra la consola en el proyecto raíz e instale el momento: npm install moment --S .
  2. Importar momento en archivo de componente: import moment from 'moment'; .
  3. Establecer el valor de la variable del modelo: this.myDate = moment().format() .

Lo mejor sería crear una tubería. Bueno, mira esta demostración http://plnkr.co/edit/MHjUdC para inspirarte, buena suerte :)

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda