国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

解決easyui日期時(shí)間框ie的兼容的問(wèn)題

2019-11-19 14:15:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前幾天項(xiàng)目進(jìn)入最后準(zhǔn)備上線階段,測(cè)試突然發(fā)現(xiàn)使用easyui的datetimebox插件獲取的時(shí)間在ie的時(shí)候無(wú)法獲取到比當(dāng)前時(shí)間還往后的時(shí)間,當(dāng)時(shí)是這么寫的:

	$(selector).datetimebox(	{formatter : function(date) {	var y = date.getFullYear();	var m = date.getMonth() + 1;	var d = date.getDate();	var h = date.getHours(); //獲取當(dāng)前小時(shí)數(shù)(0-23)	var mi = date.getMinutes(); //獲取當(dāng)前分鐘數(shù)(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();	}}	});

測(cè)試谷歌瀏覽器等主流瀏覽器都沒(méi)有問(wèn)題,可以把一開(kāi)始回顯的時(shí)間顯示出來(lái),并可以選擇時(shí)間,但是到ie的時(shí)候,卻發(fā)現(xiàn)選擇不了時(shí)間了,而且回顯的日期也不對(duì),老是當(dāng)前的時(shí)間。調(diào)試了好久,才發(fā)現(xiàn)是ie瀏覽器不支持js的parse()方法。parse()方法是把日期解析轉(zhuǎn)換成該日期的毫秒數(shù)。

formatter是格式化日期的格式。而parser是把解析你格式化的日期,具體寫法看我截的API圖吧:

因?yàn)閜arse在ie中無(wú)法使用~導(dǎo)致在ie下無(wú)法解析顯示出格式化過(guò)后日期的時(shí)間。下面是我自己改過(guò)的代碼:

$(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解析時(shí)先通過(guò)日期和時(shí)間之間的空格,把他倆分割開(kāi)來(lái)。ss[0]==xxxx-xx-xx,ss[1]==xx:xx。這樣的話再通過(guò)-和:的分割,把他們分割成一個(gè)個(gè)數(shù)字,這樣的話直接寫入new Date()的參數(shù)里就可以返回正確的日期格式了~~好了,經(jīng)測(cè)試完美兼容ie這個(gè)坑爹的瀏覽器。

今天在使用時(shí)突然發(fā)現(xiàn)這個(gè)方法的一個(gè)bug,那就是如何一開(kāi)始datetime時(shí)間框沒(méi)有數(shù)據(jù)是,會(huì)報(bào)split錯(cuò)誤,所以今天修改了下,加了個(gè)為空判斷:

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是個(gè)字符串類型~所以不能用s==null來(lái)做判斷條件~

以上這篇解決easyui日期時(shí)間框ie的兼容的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 威远县| 郁南县| 仁化县| 张家港市| 贞丰县| 犍为县| 勃利县| 台北市| 昌宁县| 通化县| 柳江县| 页游| 双柏县| 南江县| 丹阳市| 长岛县| 盐津县| 岳池县| 江津市| 荥经县| 临泉县| 崇明县| 洞头县| 太谷县| 卓尼县| 平度市| 荣成市| 宜兴市| 榆中县| 乳山市| 榆中县| 体育| 胶州市| 汉川市| 尚义县| 金坛市| 高碑店市| 望城县| 磐安县| 浮山县| 夏河县|