Foros del Web » Programando para Internet » Javascript »

Duda con parse() y UTC()

Estas en el tema de Duda con parse() y UTC() en el foro de Javascript en Foros del Web. Hola buenas, Tengo una duda con el método parse() del objeto Date, ya que dependiendo de si al final de la cadena se pone o ...
  #1 (permalink)  
Antiguo 16/05/2011, 13:41
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Duda con parse() y UTC()

Hola buenas,

Tengo una duda con el método parse() del objeto Date, ya que dependiendo de si al final de la cadena se pone o no 'UTC' devuelve un valor diferente.

Código:
// Devuelve: 1305400882000
alert( Date.parse("May 14, 2011 20:21:22") );

// Devuelve: 1305404482000
alert( Date.parse("May 14, 2011 20:21:22 UTC") );

// Devuelve: 1305404482000
alert( Date.UTC(2011, 4, 14, 20, 21, 22) );
El caso es que dependiendo de donde esté el usuario no siempre será UTC, podría ser también UTC+2 por ejemplo... ando un poco perdido ahora mismo con esto, agradecería un poco de luz sobre el asunto...

Muchas gracias
  #2 (permalink)  
Antiguo 16/05/2011, 14:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Duda con parse() y UTC()

buenas,

fijate que parse trata de convertir un formato de fecha y la conversion la hace de acuerdo a los datos en ese formato. en el primer ejemplo, no se especifica la zona horaria, por tanto el parser toma la zona de acuerdo a la configuracion del equipo. es decir, si mi equipo esta configurado a la zona -6 UTC, el parser calculara de acuerdo a esa zona. sin embargo, si la zona se especifica en el formato, entonces se calcula de acuerdo al parametro especificado. el segundo y tercer ejemplo devuelven el mismo valor porque en parse se le esta indicando la zona, el cual es UTC +0. por otro lado, la funcion UTC siempre devuelve la hora de la zona UTC +0.

referente al ultimo comentario, si tu quieres que el usuario obtenga la hora correcta de acuerdo a su zona, es importante que el reloj del equipo del usuario este configurado correctamente.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 16/05/2011, 15:00
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Respuesta: Duda con parse() y UTC()

Gracias Zero, estoy viendo que para la zona horaria del usuario se podría solucionar en parte con el método getTimeZoneOffset():

http://www.w3schools.com/jsref/jsref...zoneoffset.asp

De todos modos como es algo incontrolable lo mejor es usar la del servidor, claro.

Pero lo que realmente me tiene confundido, es que mi sistema está configurado en UTC+0, por lo tanto el primer caso debería devolverme lo mismo que el segundo aún sin especificar UTC.

Además estoy viendo que si cambio el mes a 11 (diciembre) en los tres casos sí que se devuelve lo mismo, por lo que deduzco que es algo relacionado con el horario de verano (¿es algo aplicado en todos los países?), aunque vuelvo a lo mismo... en el primer ejemplo supongo que debiera coger la del sistema!

Gracias nuevamente.
  #4 (permalink)  
Antiguo 16/05/2011, 15:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Duda con parse() y UTC()

hice la prueba y a mi me funciona. si recien configuras el sistema a esa zona, debes reiniciar el navegador para que javascript tome los cambios.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 16/05/2011, 15:49
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Respuesta: Duda con parse() y UTC()

Pues no lo entiendo, no hice cambios en la zona horaria. De todos modos he reiniciado y me continúa dando los valores que puse en el primer mensaje con todos los navegadores... sin embargo con valores a partir del 1 de septiembre (cuando comienza el horario de invierno) muestran los mismos valores.

En fin lo dejamos en un misterio no quiero molestar más con esto, un saludo y muchas gracias !
  #6 (permalink)  
Antiguo 16/05/2011, 16:23
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Respuesta: Duda con parse() y UTC()

He encontrado la respuesta, por lo visto mi zona horaria es UTC en invierno, pero en verano es UTC+1.

Por lo tanto, al no especificar 'UTC' en la primera línea está tomando del sistema 'UTC+1' al estar en horario de verano ahora mismo.

Etiquetas: parse
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:26.