domingo, 15 de abril de 2007

getYear() e getFullYear()

Para alguns isso já é conhecido, mas para mim não era. Eu estava com manuais desatualizados e não sabia que existia o método getFullYear() do objeto Date em javascript.

Quando descobri que o número de dígitos retornado por getYear() depende do browser, em pleno século XXI, fiquei indignado! Cheguei a fazer uma correção para que o método retornasse, em qualquer browser, o ano com 4 dígitos, como deveria ser. Conectei-me à internet com a intenção de postar minha correção, e aproveitei para pesquisar o que já existia sobre o assunto, e assim descobri o método getFullYear(), que faz o que getYear() deveria fazer.

Mas eu gostei da correção que eu fiz e quero postá-la de qualquer forma, para quem preferir usar getYear() em vez de getFullYear() (em browsers antigos, por exemplo, ou porque é um nome mais curto, prático e apropriado). Ou para quem quiser ver um exemplo prático do uso de prototype para deixar um método de um objeto Javascript a seu gosto. Ei-la:

//Correção em Date.getYear()
//(c) Sony Santos, 2007
//Você pode usar este código livremente em seus projetos.
//(You can use this code freely in your projects.)

//Estando hoje no século XXI, podemos usar um código apenas para corrigir no caso de o ano corrente ser < 2000.
if (new Date().getYear() < 2000) {

//Copia a função errada para outro nome
Date.prototype.getWrongYear = Date.prototype.getYear;

//Cria agora uma função correta para pegar o ano
Date.prototype.getYear = function() {
return this.getWrongYear() + 1900;
}
}

Pronto! Usando isso apenas uma vez no script, toda chamada subseqüente a getYear() retornará um ano com 4 dígitos.

Nenhum comentário: