IE의 날짜 생성자 오작동: 브라우저 간 비교
웹 개발 영역에서 JavaScript의 Date 생성자는 날짜를 조작하려는 개발자의 믿음직한 동맹자입니다. 그러나 주요 브라우저에서 이 생성자를 사용할 때 이상한 현상이 관찰되었습니다. Firefox와 Chrome은 Date의 기능을 기꺼이 수용하지만 Internet Explorer는 특정 날짜 작업에 대해 NaN(Not-a-Number)을 반환하는 등의 문제가 있는 것으로 알려져 있습니다.
이 수수께끼를 풀기 위해 달력을 만드는 개발자. PHP 형식 날짜 문자열('m, d, Y')을 사용한 날짜 구성은 Firefox와 Chrome에서 완벽하게 작동했지만 IE는 NaN 짜증을 냈습니다.
날짜 구성 문제
<code class="javascript">function buildWeek(dateText){ var headerDates=''; var newDate = new Date(dateText); for(var d=0;d<7;d++){ headerDates += '<th>' + newDate + '</th>'; newDate.setDate(newDate.getDate()+1); } jQuery('div#headerDates').html('<table><tr>'+headerDates+'</tr></table>'); }</code>
문제의 근원은 날짜 형식에 있습니다. IE는 기본 형식('YYYY-MM-DD')으로 날짜를 구문 분석할 수 있지만 이 코드에 사용된 'm, d, Y' 형식에 직면하면 어려움을 겪습니다.
해결책: 날짜 형식 표준화
브라우저 간 호환성을 보장하려면 날짜 구성에 사용되는 날짜 형식을 표준화하는 것이 필수적입니다. 권장되는 접근 방식은 날짜 문자열을 IE가 쉽게 이해할 수 있는 형식으로 변환하는 것입니다. 한 가지 편리한 옵션은 분할() 메서드를 활용하여 날짜 문자열을 분석한 다음 개별 구성 요소를 Date 생성자에 전달하는 것입니다.
예를 들어, MySQL 날짜/시간 스탬프 필드가 "2011- 08-03 09:15:11"에서 다음 코드 조각은 IE 호환성을 위해 형식을 정규화합니다.
<code class="javascript">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]);</code>
이 접근 방식을 채택하면 Date 작업이 모든 주요 브라우저에서 원활하게 작동하도록 할 수 있습니다. , 코드에 큰 피해를 줄 수 있는 설명할 수 없는 NaN 오류를 제거합니다.
위 내용은 JavaScript의 날짜 생성자를 사용할 때 Internet Explorer에서 NaN 오류가 발생하는 원인은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!