2009-08-18 28 views
9

¿Hay algún caso real en el que getUTCFullYear() difiera de getFullYear() en javascript?¿Cuál es la necesidad de la función de javascript getUTCFullYear()?

Lo mismo ocurre con:

getUTCMonth() vs getMonth()

getUTCDate() vs getDate()

Me estoy perdiendo algo aquí?

EDIT:

Ver getUTCFullYear() documentation.

¿Hay algún caso real en el que getUTCFullYear() difiera de getFullYear() en javascript?

+1

Ese enlace no funciona correctamente para mí. Termino en http://docs.oracle.com/en/. – ADH

Respuesta

8

Sí, alrededor de año nuevo. Si su TZ es -12, el valor difiere entre 31. Diciembre, 12:00 a.m. y medianoche.

9

Los métodos getUTC ...() devuelven la fecha y la hora en la zona horaria UTC, mientras que las otras funciones devuelven la fecha y la hora en la zona horaria local del equipo en el que se ejecuta el script.

A veces, es conveniente tener la fecha y la hora en la zona horaria local, y a veces es conveniente tener la fecha y hora en una zona horaria independiente de la zona horaria local de la computadora.

Existen formas de convertir zonas horarias en JavaScript, pero son engorrosas.

Así que, supongo que es solo por conveniencia.

1

Como el 31 de diciembre va al 1 de enero, esto sucede en diferentes momentos en diferentes partes del mundo. Por lo tanto, el tiempo UTC será diferente de, por ejemplo, la hora local en Nueva Zelanda - por lo que en algún momento getFullYear() será diferente de getUTCFullYear() en 1.

3

Las funciones que básicamente lista de informar del tiempo en diferentes zonas horarias, por lo que tener un caso en el que se getUTCFullYear() diferir de getFullYear() será la noche del 31 de diciembre si vive al oeste del meridiano de Greenwich.

Por ejemplo, en que zona horaria local, el tiempo se podría 21:00, pero en UTC que ya podría haber 02 a.m. el 1 de enero, así:

var d = new Date(); 
d.getFullYear() == 2009 //True 
d.getUTCFullYear() == 2010 //True 

Es confuso ya que los métodos operan en un objeto Date en lugar de informar la hora UTC actual. Pero el método dice: si este es el momento aquí, qué año es en la zona horaria UTC. Por lo tanto, para 364.75 días de los años reportados por los dos métodos será el mismo.

Cuestiones relacionadas