>  기사  >  웹 프론트엔드  >  Safari가 \'2010-11-29\' 형식의 날짜 때문에 어려움을 겪는 이유는 무엇입니까?

Safari가 \'2010-11-29\' 형식의 날짜 때문에 어려움을 겪는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-21 17:53:32267검색

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는 날짜를 예상 형식으로 구문 분석할 수 있으므로 웹 애플리케이션에서 날짜를 표시하고 여러 브라우저에서 일관되게 날짜를 조작합니다.

위 내용은 Safari가 \'2010-11-29\' 형식의 날짜 때문에 어려움을 겪는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.