getYear (o maldito IE de novo!)

O Roberto, do blog Bom Tempo, publicou um post falando de um erro na página do Charlab, que ele atribui ao bug do milênio.
A data, segundo o Roberto, está aparecendo com o ano 102. Acontece que, se você visitar a página do Charlab com IE não vai ver erro nenhum.
Ele deve ter feito a página e testado apenas no IE. Para montar a data ele usou o método getYear da classe Date. No IE o método getYear retorna, erroneamente, a data completa. Nos outros navegadores ele mostra quantos anos se passaram desde 1900, o que está de acordo com as documentações. A documentação da Microsoft diz que o método é obsoleto, e eles o mantiveram apenas para garantir a compatibilidade. Se foi por isso, por que então mudaram o funcionamento do método?
Use, no lugar do getYear, o getFullYear, que retorna sempre o ano com quatro dígitos, em qualquer navegador.
Se você tiver um script longo, cheio de getYears, e quiser fazê-lo funcionar, basta dar um Find/Replace. Mas suponhamos que, por algum motivo, você não queira fazer isso. Coloque, no começo do seu script:

 Date.prototype.getYear=function(){
     return this.getFullYear()
 } 

Publicado por

Elcio

Elcio é sócio fundador da Visie Padrões Web. Pioneiro no uso e divulgação dos padrões do W3C no Brasil, Elcio já treinou equipes de dezenas de empresas como Globo.com, Terra, Petrobras, iG e Locaweb. Além disso, tem dirigido as equipes da Visie no desenvolvimento de projetos web para marcas como Brastemp, Itaú Unibanco, Johnson & Johnson e Rede Globo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *