easyui 날짜 시간 상자 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 가 되 었 을 때 시간 을 선택 할 수 없다 는 것 을 알 게 되 었 습 니 다.그리고 보 여 준 날짜 도 맞지 않 고 항상 현재 의 시간 입 니 다.오랫동안 디 버 깅 한 후에 야 ie 브 라 우 저가 js 를 지원 하지 않 는 parse()방법 이라는 것 을 알 게 되 었 다.parse()방법 은 날 짜 를 이 날짜 의 밀리초 로 해석 하 는 것 이다.formatter 는 날 짜 를 포맷 하 는 형식 입 니 다.파 서 는 포맷 된 날 짜 를 분석 하 는 것 입 니 다.구체 적 인 작성 방법 은 제 가 캡 처 한 API 그림 을 보 세 요.
parse 는 ie 에서 사용 할 수 없 기 때문에 i 에서 포맷 후 날 짜 를 표시 하 는 시간 을 분석 할 수 없습니다.다음은 제 가 고 친 코드 입 니 다.
$(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();
}
}
});
formatter 포맷 날 짜 는 xxxx-xx-xx xx:x 입 니 다.그래서 아래 parser 에서 분석 할 때 먼저 날짜 와 시간 사이 의 빈 칸 을 통 해 그들 둘 을 나 누 었 다.ss[0]==xxxx-xx-xx,ss[1]==xx:xx。이렇게 되면-와:의 분할 을 통 해 그들 을 하나의 숫자 로 나 누 면 new Date()의 매개 변수 에 직접 기록 하면 정확 한 날짜 형식 으로 돌아 갈 수 있 습 니 다~자,테스트 를 통 해 ie 라 는 구덩이 아버지의 브 라 우 저 를 완벽 하 게 호 환 할 수 있 습 니 다.오늘 사용 할 때 갑자기 이 방법의 bug 를 발 견 했 습 니 다.그것 은 바로 처음에 datetime 시간 상자 에 데이터 가 없 는 방법 입 니 다.split 오 류 를 보고 할 수 있 기 때문에 오늘 수정 하여 빈 판단 을 추가 하 였 습 니 다.
if(s==""){
return new Date();
}else{
//alert(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();
}
}
여기 서 s 는 문자열 형식 이 므 로 s==null 로 판단 할 수 없습니다~이상 의 이 easyui 날짜 시간 상자 ie 의 호 환 문 제 를 해결 하 는 것 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EasyUI 생성 트리, 탭 열기 클릭텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.