>  기사  >  웹 프론트엔드  >  IE에서 easyui 날짜 및 시간 상자의 호환성을 처리하는 방법

IE에서 easyui 날짜 및 시간 상자의 호환성을 처리하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-12 15:08:412002검색

이번에는 IE에서 easyui 날짜 및 시간 상자 호환성을 처리하는 방법을 보여 드리겠습니다. IE에서 easyui 날짜 및 시간 상자 호환성을 처리하기 위한 주의 사항은 무엇입니까? 실제 사례를 한 번 살펴보겠습니다.

몇일 전, 프로젝트가 출시 준비 마지막 단계에 들어섰습니다. 테스트 도중 갑자기 easyui의 datetimebox 플러그인을 사용하여 얻은 시간이 IE에서 현재 시간보다 더 많은 시간을 얻을 수 없다는 사실이 발견되었습니다. . 당시에 작성된 내용은 다음과 같습니다.

	$(selector).datetimebox(
	{
formatter : function(date) {
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	var d = date.getDate();
	var h = date.getHours(); //获取当前小时数(0-23)
	var mi = date.getMinutes(); //获取当前分钟数(0-59)
	var s = date.getSeconds(); 
	var result = y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
+ " " + (h < 10 ? '0' + h : h)
+ ":" + (mi < 10 ? '0' + mi : mi);
	
	//console.log(result+"--第127行");
	if(second==false){
	} else {
result += ":" + (s < 10 ? '0' + s : s);
	}
	return result;
},
  parser : function(s) {
	var t = Date.parse(s);
	if (!isNaN(t)) {
return new Date(t);
	} else {
return new Date();
	}
}
	});

구글 크롬 등 주류 브라우저에서는 테스트할 때 문제가 없는데, 초기에 에코된 시간이 표시되고 시간을 선택할 수 있는데, 인터넷 익스플로러를 사용하면 시간을 선택할 수 없고 에코된 날짜가 잘못된 것을 발견했습니다. 현재 시간입니다. 디버깅을 오랫동안 하다가 ie 브라우저가 js의 pars() 메서드를 지원하지 않는다는 사실을 알게 되었습니다. parse() 메서드는 날짜를 구문 분석하고 이를 날짜의 밀리초로 변환합니다.

formatter는 날짜 형식을 지정하는 형식입니다. 그리고 파서는 형식이 지정된 날짜를 구문 분석하는 것입니다

IE에서는 구문 분석을 사용할 수 없기 때문에 IE에서는 형식화된 날짜 시간을 구문 분석하여 표시하는 것이 불가능합니다. 아래는 제가 수정한 코드입니다:

$(selector).datetimebox( 
  { 
  formatter : function(date) { 
   var y = date.getFullYear(); 
 var m = date.getMonth()+1; 
 var d = date.getDate(); 
 var h = date.getHours(); 
 var min = date.getMinutes(); 
 return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d)+' '+(h<10?('0'+h):h)+':'+min; 
  }, 
  parser : function(s) { 
 var ss = (s.split(" ")); 
 var ymd = ss[0].split("-"); 
 var hms = ss[1].split(":"); 
 //console.log(ymd+" "+hms); 
 var y = parseInt(ymd[0],10); 
 var m = parseInt(ymd[1],10); 
 var d = parseInt(ymd[2],10); 
 var h = parseInt(hms[0],10); 
 var min = parseInt(hms[1],10); 
 if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min)){ 
 return new Date(y,m-1,d,h,min); 
 } else { 
 return new Date(); 
 } 
  } 
  });

포맷터로 포맷된 날짜는 xxxx-xx-xx입니다. 트리플 엑스. 따라서 아래 구문 분석 시 날짜와 시간은 먼저 공백으로 구분됩니다. ss[0]==xxxx-xx-xx, ss[1]==xx:xx. 이 경우에는 - 및:를 사용하여 숫자로 나눕니다. 이 경우에는 new를 직접 작성합니다. Date()의 매개변수에 올바른 날짜 형식이 반환될 수 있습니다~~ 테스트 결과 치팅 브라우저 IE와 완벽하게 호환됩니다.

오늘 이 방법을 사용하다가 갑자기 버그를 발견했습니다. 즉, 처음에 날짜/시간 프레임에 데이터가 없으면 분할 오류가보고되므로 오늘 수정하고 빈 판단을 추가했습니다.

rreee

여기서 s는 string 유형이므로 s==null을 사용하여 판단 조건을 만들 수 없다는 점에 유의해야 합니다~

더 흥미로운 정보를 보려면 이 기사의 사례를 읽은 후 방법을 마스터했다고 믿습니다. , PHP 중국어 웹사이트 기사에서 다른 관련 주제에 주목해 주세요!

추천 자료:

vue는 입력 콘텐츠에 공백이 있는지 확인합니다


Vuex 돌연변이 및 작업 사용에 대한 자세한 설명


위 내용은 IE에서 easyui 날짜 및 시간 상자의 호환성을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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