Peculiaridades de análise de data do Safari
Por que o Safari gera um erro de "data inválida" ao encontrar datas em formatos como '2010-11-29 ', enquanto outros navegadores lidam com essas datas sem problemas? Esse comportamento inconsistente pode ser frustrante para os desenvolvedores da web.
A raiz do problema está na interpretação do Safari dos traços (-) nas strings de data. Embora a maioria dos navegadores reconheça traços como separadores de data, o Safari os trata erroneamente como parte da própria data, levando a cálculos de data incorretos.
Para ilustrar, tente as seguintes tentativas de análise de string:
alert(new Date('2010-29-11')); // Doesn't work in Safari alert(new Date('29-11-2010')); // Doesn't work in Safari alert(new Date('11-29-2010')); // Doesn't work in Safari
Como você pode ver, o Safari não consegue analisar essas datas corretamente, independentemente da ordem dos componentes.
Ao utilizar uma biblioteca separada como Moment.js ou date-fns pode ser uma opção para aliviar esse problema, uma solução mais direta está disponível. Simplesmente substituindo os travessões por barras (/), o Safari pode interpretar corretamente a string de data:
console.log(new Date('2011-04-12'.replace(/-/g, "/")));
Essa correção de uma linha garante que o Safari possa analisar datas no formato esperado, permitindo que aplicativos da web exibam e manipulem datas de forma consistente em vários navegadores.
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