Особенности анализа даты в 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 сможет анализировать даты в ожидаемом формате, позволяя веб-приложениям единообразно отображать даты и манипулировать ими в нескольких браузерах.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3