HTMLeando: para desarrolladores Web

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

Thumb_up
Thumb_down

0%
0%

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

Thumb_up
Thumb_down

0%
0%
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:
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

Anónimo:   Entrar


Consejo: Sé tan específico y descriptivo como puedas. Comparte tu experiencia personal o tus conocimientos.
Puedes investigar para completar tu respuesta.

Puedes poner directamente trozos de código usando las etiquetas [code=php] y [/code] o incrustar desde Snipplr.com [snippet=id_snippet]

Compartir: WebeameMeneame Delicious Digg

Preguntas relacionadas