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 오류가 성공적으로 제거되어 다양한 브라우저에서 일관된 날짜 처리가 가능해졌습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3