zona obtener new manejo horaria hora gettimezoneoffset fechas fecha ejemplos convertir año actual javascript date extjs timezone extjs3

new - obtener fecha y hora actual javascript



Fechas ExtJS y zonas horarias (3)

Tengo un problema con la clase Ext Date aparentemente devolviendo la zona horaria incorrecta para una fecha analizada. Usando el siguiente código creo un objeto de fecha para el 24 de mayo de 1966 15:46 BST:

date = "1966-05-24T15:46:01+0100"; var pDate = Date.parseDate(date, "Y-m-d//TH:i:sO", false);

Entonces llamo esto:

console.log(pDate.getGMTOffset());

Espero obtener el desplazamiento asociado con la fecha de regreso (que es GMT + 1), pero en su lugar obtengo la zona horaria local del navegador. Si el navegador está configurado en una zona horaria lo suficientemente avanzada como GMT, la parte del día de la fecha también se transferirá (por lo que la fecha aparecerá el 25 de mayo de 1966).

¿Alguien sabe cómo evitar esto y hacer que Ext reconozca la zona horaria correcta de la fecha analizada en lugar de la zona horaria del navegador local?

Si esto no es posible, ¿se puede obligar a Ext a usar GMT en lugar de tratar de interpretar las zonas horarias?


Mis dos centavos, porque realmente no puedo poner todo mi tiempo a las 12:00 como lo hizo Tim. Publiqué en el foro de sencha


Comprobé la implementación de parseDate () en el código fuente de ExtJS y la documentación de Fecha en JavaScript central , el constructor de fecha () utilizado por ExtJS no admite la información de zona horaria. Los objetos JavaScript Date representan un valor UTC, sin la zona horaria. Durante el análisis en el código fuente de ExtJS, la zona horaria se pierde mientras que el desplazamiento correspondiente en minutos / segundos se agrega a la Fecha.

Luego revisé el código fuente de getGMTOffset () definido por ExtJS : construye una cadena de zona horaria usando la función getTimezoneOffset () definida en JavaScript.

Citando la documentación de getTimezoneOffset () :

El desplazamiento de la zona horaria es la diferencia entre la hora local y la hora del meridiano de Greenwich (GMT). El horario de verano impide que este valor sea una constante.

La zona horaria no es una variable almacenada en la Fecha, es un valor que varía de acuerdo con el período del año en que aparece la Fecha.

En mi computadora, con una configuración regional francesa,

new Date(2010,1,20).getTimezoneOffset() // -60 new Date(2010,9,20).getTimezoneOffset() // -120

Editar: este comportamiento no es específico del análisis de la fecha en ExtJS, la siguiente nota en la documentación de Date.parse () en el Centro de documentación de Mozilla es relevante aquí también:

Tenga en cuenta que aunque los especificadores de zona horaria se utilizan durante el análisis de cadenas de fechas para interpretar correctamente el argumento, no afectan el valor devuelto, que es siempre el número de milisegundos entre el 1 de enero de 1970 00:00:00 UTC y el punto en el tiempo representado por el argumento