Analizar fecha sin zona horaria javascript
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:
- sin zona horaria.
- sin llamar a un constructor
Date.UTC
o newDate(year, month, day)
. - simplemente pasando una cadena al constructor Date (sin enfoques de prototipo).
Tengo que producir un objeto Fecha, no una Cadena.
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.
La fecha se analiza correctamente, solo toString
que 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())
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...String
mé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.