"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o Safari luta com datas no formato '2010-11-29'?

Por que o Safari luta com datas no formato '2010-11-29'?

Publicado em 2024-11-08
Navegar:369

Why Does Safari Struggle with Dates in \'2010-11-29\' Format?

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.

Declaração de lançamento Este artigo foi reimpresso em: 1729502775 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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