«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему Safari не справляется с датами в формате «2010-11-29»?

Почему Safari не справляется с датами в формате «2010-11-29»?

Опубликовано 8 ноября 2024 г.
Просматривать:469

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

Особенности анализа даты в Safari

Почему Safari выдает ошибку «недопустимая дата» при обнаружении дат в таких форматах, как '2010-11-29 ', в то время как другие браузеры без проблем обрабатывают эти даты? Такое непоследовательное поведение может расстраивать веб-разработчиков.

Корень проблемы заключается в интерпретации Safari дефисов (-) в строках даты. Хотя большинство браузеров распознают тире как разделители даты, Safari ошибочно воспринимает их как часть самой даты, что приводит к неправильным вычислениям даты.

Для иллюстрации попробуйте следующие попытки синтаксического анализа строк:

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

Как видите, Safari не может правильно проанализировать эти даты, независимо от порядка компонентов.

При использовании отдельной библиотеки, такой как Moment.js или date-fns могут помочь решить эту проблему, доступно более простое решение. Просто заменяя тире косой чертой (/), Safari может правильно интерпретировать строку даты:

console.log(new Date('2011-04-12'.replace(/-/g, "/")));

Это однострочное исправление гарантирует, что Safari сможет анализировать даты в ожидаемом формате, позволяя веб-приложениям единообразно отображать даты и манипулировать ими в нескольких браузерах.

Заявление о выпуске Эта статья перепечатана по адресу: 1729502775. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3