Pregunta
¿Por qué la function de Javascript getYear() devuelve 110?
Responder esta pregunta por dudin el 2010-02-04
¿Por qué al ejecutar el siguiente código JavaScript para obtener el año me devuelve 110 en lugar de 2010?
fecha = new Date();
anno = fecha.getYear();
//Retorna anno=110
Respuestas
En la especificación de ECMAScript, la función getYear devuelve el año menos 1900, o sea para 2010 devuelve 110. Por lo que esta función getYear fue descontinuada en la versión 3 de ECMAScript siendo reemplazada por getFullYear() que devolvería 2010. Internet Explorer cambió a getYear() para que funciones similar a getFullYear() mientras que Mozilla lo mantiene al antiguo estándar. El nuevo código sería:
fecha = new Date();
anno = fecha. getFullYear ();
//Retorna anno=110
Véase además:
- http://www.w3schools.com/jsref/jsref_obj_date.asp
- http://es.wikipedia.org/wiki/Problema_del_a%C3%B1o_2000 (Error del milenio)
- http://stackoverflow.com/questions/98124/why-does-javascript-getyear-return-108
por maikel el 2010-02-04
Como getFullYear no funciona en los navegadores más antiguos una posible solución sería extender el objeto Date con una función compatible para todos:
Resultando:
Date.prototype.getRealYear = function()
{
if(this.getFullYear)
return this.getFullYear();
else
return this.getYear() + 1900;
};
Resultando:
var fecha = new Date();
fecha.getRealYear();
// Retorna 2010
por maikel el 2010-02-04



