Analizar fecha sin zona horaria javascript

Resuelto Athlan asked hace 11 años • 17 respuestas

Quiero analizar una fecha sin zona horaria en JavaScript. Lo intenté:

new Date(Date.parse("2005-07-08T00:00:00+0000"));

Que regresó Fri Jul 08 2005 02:00:00 GMT+0200(hora de verano de Europa Central):

new Date(Date.parse("2005-07-08 00:00:00 GMT+0000"));

devuelve el mismo resultado y:

new Date(Date.parse("2005-07-08 00:00:00 GMT-0000"));

también devuelve el mismo resultado.

Quiero analizar el tiempo:

  1. sin zona horaria.
  2. sin llamar a un constructor Date.UTCo new Date(year, month, day).
  3. simplemente pasando una cadena al constructor Date (sin enfoques de prototipo).

Tengo que producir un objeto Fecha, no una Cadena.

Athlan avatar Jul 09 '13 17:07 Athlan
Aceptado

Tengo el mismo problema. Obtengo una fecha como cadena, por ejemplo: '2016-08-25T00:00:00', pero necesito tener un objeto Fecha con la hora correcta. Para convertir String en objeto, uso getTimezoneOffset:

var date = new Date('2016-08-25T00:00:00')
var userTimezoneOffset = date.getTimezoneOffset() * 60000;
new Date(date.getTime() - userTimezoneOffset);

getTimezoneOffset()devolverá un valor positivo o negativo de éter. Esto debe restarse para funcionar en todos los lugares del mundo.

wawka avatar Aug 29 '2016 15:08 wawka

La fecha se analiza correctamente, solo toStringque muestra la marca de tiempo en su zona horaria local:

let s = "2005-07-08T11:22:33+0000";
let d = new Date(Date.parse(s));

// this logs for me 
// "Fri Jul 08 2005 13:22:33 GMT+0200 (Central European Summer Time)" 
// and something else for you

console.log(d.toString()) 

// this logs
// Fri, 08 Jul 2005 11:22:33 GMT
// for everyone

console.log(d.toUTCString())
Expandir fragmento

Los objetos de fecha de Javascript son valores de tiempo ; simplemente contienen una cantidad de milisegundos desde la época. No hay información de zona horaria en un objeto Fecha. La fecha del calendario (día, minutos, segundos) que representa esta marca de tiempo es una cuestión de interpretación (uno de to...Stringmétodos).

El ejemplo anterior muestra que la fecha se está analizando correctamente para el desplazamiento +0000; es decir, en realidad contiene una cantidad de milisegundos correspondiente a "2005-07-08T11:22:33" en GMT.

georg avatar Jul 09 '2013 10:07 georg