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:
Postar um comentário