Mau funcionamento do construtor de data no IE: uma comparação entre navegadores
No domínio do desenvolvimento web, o construtor Date do JavaScript provou ser um aliado confiável para desenvolvedores que buscam manipular datas. No entanto, um fenômeno curioso foi observado ao usar este construtor nos principais navegadores. Embora o Firefox e o Chrome adotem alegremente a funcionalidade do Date, sabe-se que o Internet Explorer tropeça, retornando NaN (Not-a-Number) para determinadas operações de data.
Para desvendar esse enigma, vamos nos aprofundar no problema específico observado por um desenvolvedor construindo um calendário. A construção de data a partir de uma string de data formatada em PHP ('m, d, Y') funcionou perfeitamente no Firefox e no Chrome, mas o IE insistiu em fazer birras NaN.
function buildWeek(dateText){
var headerDates='';
var novaData = nova Data(dataText);
for(var d=0;d' novaData '';
novaDate.setDate(newDate.getDate() 1);
}
jQuery('div#headerDates').html('
');
}' headerDates '
function buildWeek(dateText){
var headerDates='';
var newDate = new Date(dateText);
for(var d=0;dA solução: Padronizando o formato de dataPara garantir a compatibilidade entre navegadores, é fundamental padronizar o formato de data usado na construção de data. A abordagem recomendada é converter a sequência de datas em um formato que o IE possa entender facilmente. Uma opção conveniente é aproveitar o método split() para dissecar a string de data e, em seguida, passar os componentes individuais para o construtor Date. 08-03 09:15:11", o seguinte trecho de código normalizaria o formato para compatibilidade com o IE:
var dateStr="2011-08-03 09:15:11"; //retornado do campo timestamp/datetime do mysql
var a=dateStr.split(" ");
var d=a[0].split("-");
var t=a[1].split(":");
var date = new Date(d[0],(d[1]-1),d[2],t[0],t[1],t[2]);Ao adotar este abordagem, você pode garantir que suas operações de data funcionarão bem em todos os principais navegadores, eliminando erros inexplicáveis de NaN que podem causar estragos em seu código.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3