"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > IE 날짜 생성자가 Chrome 및 Firefox 날짜 처리와 다른 이유는 무엇입니까?

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

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

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 오류가 성공적으로 제거되어 다양한 브라우저에서 일관된 날짜 처리가 가능해졌습니다.

릴리스 선언문 이 글은 1729402457에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3