>웹 프론트엔드 >JS 튜토리얼 >IE 날짜 생성자가 Chrome 및 Firefox 날짜 처리와 다른 이유는 무엇입니까?

IE 날짜 생성자가 Chrome 및 Firefox 날짜 처리와 다른 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-20 13:35:30731검색

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

IE 날짜 생성자 문제: NaN과 다른 브라우저의 기능 비교

JavaScript 달력 개발과 관련된 프로젝트 내에서 날짜 처리에 불일치가 나타났습니다. Internet Explorer(IE) 및 Firefox, Chrome과 같은 브라우저. 특히, IE의 날짜 함수는 NaN(Not a Number) 값을 발생시켰으나 다른 브라우저에서는 제대로 작동했습니다.

조사 결과 근본 원인이 사용되는 날짜 형식과 관련이 있는 것으로 밝혀졌습니다. 문제의 함수인 buildWeek()는 'm, d, Y' 형식(예: "02, 01, 2010")으로 제공된 월요일 날짜를 기반으로 한 주의 헤더 날짜를 생성하기 위한 것입니다. 하지만 IE에서는 이 형식이 올바르게 인식되지 않아 NaN 문제가 발생했습니다.

이러한 불일치를 해결하기 위해 다른 접근 방식이 채택되었습니다. 주어진 형식에 의존하는 대신, 날짜 문자열은 분할(" ")을 사용하여 해당 구성요소(날짜 및 시간)로 분할되었습니다. 그 후, 날짜 구성 요소는 Split("-")을 사용하여 구성 부분(년, 월, 일)으로 추가로 분할되었으며, Split(":")을 사용하여 시간 구성 요소는 해당 부분(시, 분, 초)으로 분할되었습니다. .

그런 다음 이러한 구문 분석된 값을 사용하여 Date 인스턴스가 구성되었습니다. 이 방법은 모든 브라우저와 호환되는 것으로 입증되어 IE, Firefox 및 Chrome에서 일관된 날짜 처리를 보장합니다.

var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field
var a = dateStr.split(" ");
var d = a[0].split("-");
var t = a[1].split(":");
var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

이 접근 방식을 채택함으로써 IE의 NaN 오류가 성공적으로 제거되어 전체 브라우저에서 일관된 날짜 처리가 달성되었습니다. 다양한 브라우저.

위 내용은 IE 날짜 생성자가 Chrome 및 Firefox 날짜 처리와 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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