IE의 날짜 생성자 오작동: 브라우저 간 비교
웹 개발 영역에서 JavaScript의 날짜 생성자는 날짜를 조작하려는 개발자의 믿음직한 동맹자입니다. 그러나 주요 브라우저에서 이 생성자를 사용할 때 이상한 현상이 관찰되었습니다. Firefox와 Chrome은 Date의 기능을 기꺼이 수용하지만 Internet Explorer는 특정 날짜 작업에 대해 NaN(Not-a-Number)을 반환하는 등의 문제가 있는 것으로 알려져 있습니다.
이 수수께끼를 풀기 위해 달력을 만드는 개발자. PHP 형식 날짜 문자열('m, d, Y')을 사용한 날짜 구성은 Firefox와 Chrome에서 완벽하게 작동했지만 IE는 NaN 짜증을 냈습니다.
날짜 구성 문제
function buildWeek(dateText){
var headerDates='';
var newDate = new Date(dateText);
for(var d=0;d문제의 근본 원인은 날짜 형식에 있습니다. IE는 기본 형식('YYYY-MM-DD')으로 날짜를 구문 분석할 수 있지만 이 코드에 사용된 'm, d, Y' 형식에 직면하면 어려움을 겪습니다.
해결책: 날짜 형식 표준화
브라우저 간 호환성을 보장하려면 날짜 구성에 사용되는 날짜 형식을 표준화하는 것이 중요합니다. 권장되는 접근 방식은 날짜 문자열을 IE가 쉽게 이해할 수 있는 형식으로 변환하는 것입니다. 편리한 옵션 중 하나는 분할() 메서드를 활용하여 날짜 문자열을 분석한 다음 개별 구성 요소를 Date 생성자에 전달하는 것입니다.
예를 들어 MySQL 날짜/시간 스탬프 필드가 "2011- 08-03 09:15:11", 다음 코드 조각은 IE 호환성을 위해 형식을 정규화합니다.
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]);
이를 채택하여 접근 방식을 사용하면 Date 작업이 모든 주요 브라우저에서 원활하게 작동하여 코드에 큰 피해를 줄 수 있는 설명할 수 없는 NaN 오류를 제거할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3