Estoy trabajando en un proyecto NodeJS y obtengo valores de fecha incorrectos. Y no entiendo lo que estoy haciendo mal.

 var d = new Date(results[1].timestamp);
      console.log(results[1].timestamp); // 2016-05-10T13:29:47   <- this is right (stored at my DataBase)
      console.log(d.getDate());          //10
      console.log(d.getFullYear());      //2016
      console.log(d.getMonth());         //4
      console.log(d.getDay());           //2
      console.log(d.getHours());         //15
      console.log(d.getMinutes());       //29
      console.log(d.getSeconds());       //47

Entonces mes, día y horas están mal. Veo estos resultados en Google Chrome en mi Mac

Gracias por ayudar

-1
Edmundo Del Gusto 11 may. 2016 a las 14:25

3 respuestas

La mejor respuesta

Algunos errores aquí:

  1. getMonth devuelve un 0 mes basado. Eso es mayo es 04.

  2. getDay devuelve el día de la semana. Supongo que quieres getDate

  3. la fecha se analiza como UTC y getHour está de acuerdo con la configuración regional. Por lo tanto, la hora puede ser diferente de la que desea (pero aquí parece ser "exacta", ya que es el mismo valor que el ingresado).

Un consejo para sus próximos problemas: eche un vistazo a algunos documentos. Por ejemplo, el MDN.

5
Denys Séguret 11 may. 2016 a las 11:42

La función getDay() devuelve el día de la fecha, es decir, de domingo a sábado (0 a 6)

La función getMonth() devuelve el mes de enero a diciembre (0 a 1), por lo que aquí debe agregar 1 para obtener el valor correctamente

Y me temo que malinterpretaste el resultado getHours(), porque si verifico la fecha mencionada me da 13

2
simeg 22 oct. 2016 a las 19:32