解決easyui日期時(shí)間框ie的兼容的問(wèn)題
前幾天項(xiàng)目進(jìn)入最后準(zhǔn)備上線階段,測(cè)試突然發(fā)現(xiàn)使用easyui的datetimebox插件獲取的時(shí)間在ie的時(shí)候無(wú)法獲取到比當(dāng)前時(shí)間還往后的時(shí)間,當(dāng)時(shí)是這么寫(xiě)的:
$(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是把解析你格式化的日期,具體寫(xiě)法看我截的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ù)字,這樣的話直接寫(xiě)入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è)字符串類(lèi)型~所以不能用s==null來(lái)做判斷條件~
以上這篇解決easyui日期時(shí)間框ie的兼容的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Easyui 關(guān)閉jquery-easui tab標(biāo)簽頁(yè)前觸發(fā)事件的解決方法
這篇文章主要介紹了Easyui 關(guān)閉jquery-easui tab標(biāo)簽頁(yè)前觸發(fā)事件 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04jQuery的中 is('':visible'') 解析及用法(必看)
下面小編就為大家?guī)?lái)一篇jQuery的中 is(':visible') 解析及用法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02Jquery 獲取指定標(biāo)簽的對(duì)象及屬性的設(shè)置與移除
這篇文章主要介紹了Jquery如何獲取指定標(biāo)簽的對(duì)象及屬性的設(shè)置與移除,需要的朋友可以參考下2014-05-05使用jQuery中的wrap()函數(shù)操作HTML元素的教程
wrap(),顧名思義,就是包裹的意思,就是在你所在器外層包裹一層?xùn)|西,接下來(lái)我們就詳細(xì)來(lái)看使用jQuery中的wrap()函數(shù)操作HTML元素的教程:2016-05-05輕松學(xué)習(xí)jQuery插件EasyUI EasyUI創(chuàng)建CRUD應(yīng)用
這篇文章主要幫大家輕松學(xué)習(xí)jQuery插件EasyUI,并利用EasyUI創(chuàng)建CRUD應(yīng)用,感興趣的小伙伴們可以參考一下2015-11-11jQuery實(shí)現(xiàn)dialog設(shè)置focus焦點(diǎn)的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)dialog設(shè)置focus焦點(diǎn)的方法,涉及jQuery針對(duì)dialog的操作技巧,需要的朋友可以參考下2015-06-06基于jQuery Circlr插件實(shí)現(xiàn)產(chǎn)品圖片360度旋轉(zhuǎn)
Circlr是一款可以對(duì)產(chǎn)品圖片進(jìn)行360度全方位旋轉(zhuǎn)展示的jQuery插件,本文給大家分享一款基于jQuery Circlr插件實(shí)現(xiàn)產(chǎn)品圖片360度旋轉(zhuǎn),大家一起來(lái)看看吧2015-09-09簡(jiǎn)潔實(shí)用的BootStrap jQuery手風(fēng)琴插件
這篇文章主要介紹了簡(jiǎn)潔實(shí)用的BootStrap jQuery手風(fēng)琴插件知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08