Herramientas para desarrolladores : Cursos, manuales y guías de referencia : Cursos : JavaScript avanzado :

Los métodos getYear y getFullYear

El año 2000 ha generado un problema en la mayoría de los sistemas informáticos y equipos basados en microprocesadores. El precio de la memoria a principios de la era de la informática era tan alto, que los diseñadores optaron por ahorrar representando el año de las fechas con 2 dígitos. No dieron importancia a los efectos que se producirían al llegar el año 2000, cuya representación según este esquema coincide con la del año 1900 (será el año 00).

Los lenguajes de programación heredaron durante mucho tiempo esta filosofía. Esto se refleja en la existencia de funciones que no son compatibles con el año 2000 y en la aparición de correcciones a estas funciones en las versiones más modernas de la mayoría de los lenguajes de programación.

Como ejemplo, los scripts JavaScript que utilicen el método getYear del objeto Date tendrán el problema del año 2000, ya que esta función se comporta de la siguiente manera:

  • Para años mayores que 1999, el valor que devuelve getYear es 100 o superior. Por ejemplo, para el año 2010, devuelve 110.
  • Para años etre 1900 y 1999, el valor que devuelve está entre 0 y 99. Así, para el año 1970 devuelve 70.
  • Para años inferiores a 1900, el valor que devuelve la función getYear es negativo. Así, para el año 1800 da el valor -100.

Como puede verse, esta función no está preparada para el año 2000, por lo que debe ser sustituida por el método getFullYear (a partir de la versión 1.3 de JavaScript), que devuelve un valor de 4 dígitos para años comprendidos entre 1000 y 9999.

Se recomienda no utilizar getYear nunca más. Su existencia queda para permitir la compatibilidad con versiones anteriores de JavaScript.

 

Tutorial de JavaScript