Chrome 67 및 과거 시간대 변경
최근 Chrome 67 업데이트에서 개발자는 이전 날짜에 대한 시간대 처리 문제에 직면했습니다. 이 문서는 이 오류를 해결하고 영향을 받은 개발자에게 지침을 제공하는 것을 목표로 합니다. it.
문제 설명
new Date("1900-01-01T00:00:00").getTimezoneOffset()을 호출할 때 사용자는 - 오프셋을 관찰합니다. Chrome 67에서는 150분인 반면 Edge, Internet Explorer, Firefox와 같은 다른 브라우저는 지속적으로 -180을 반환합니다. 분. 이러한 불일치로 인해 정확한 시간대 정보에 의존하는 코드에 혼란과 오류가 발생했습니다.
분석 및 해결 방법
다른 브라우저와 비교하여 Chrome 67의 시간대 오프셋이 다릅니다. 기본 시간대 데이터가 소싱되고 처리되는 방식에 기인합니다. Chrome 67은 과거 시간대 변경에 대한 더 자세한 정보를 제공하는 IANA 시간대 데이터베이스의 데이터를 사용하는 것으로 보입니다. IANA 데이터베이스에 따르면 문제의 시간대(유럽/모스크바)는 1900년 02:30:17의 오프셋을 가졌습니다. Chrome은 이를 02:30으로 반올림하여 오프셋이 -150분이 되었습니다.
그러나 1970년 이전 날짜의 경우 IANA는 데이터가 "최선의 노력"을 기울였으며 완전히 정확하지 않을 수 있다고 명시적으로 밝혔습니다. 따라서 1970년 이전 날짜에 대해 정확한 시간대 정보에 의존하는 것은 권장되지 않습니다.
이 문제를 완화하려면 개발자는 1970년 이전 날짜에 Date 생성자를 사용하지 않는 것이 좋습니다. 대신 1970년 이후 날짜를 고수해야 합니다. Unix 시대(1970년 1월 1일), IANA 데이터는 일반적으로 이 기간 동안 더 신뢰할 수 있습니다. 정확한 과거 시간대 정보가 필수적인 경우 개발자는 대체 데이터 소스를 탐색해야 할 수도 있습니다.
위 내용은 Chrome 67이 1970년 이전 날짜에 대해 다른 시간대 오프셋을 반환하는 이유는 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!