"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Safari가 \'2010-11-29\' 형식의 날짜 때문에 어려움을 겪는 이유는 무엇입니까?

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

2024-11-08에 게시됨
검색:198

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