easyui日期时间框在IE中的兼容性如何处理
这次给大家带来easyui日期时间框在IE中的兼容性如何处理,easyui日期时间框在IE中的兼容性处理的注意事项有哪些,下面就是实战案例,一起来看一下。
前几天项目进入最后准备上线阶段,测试突然发现使用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的时候,却发现选择不了时间了,而且回显的日期也不对,老是当前的时间。调试了好久,才发现是ie浏览器不支持js的parse()方法。parse()方法是把日期解析转换成该日期的毫秒数。
formatter是格式化日期的格式。而parser是把解析你格式化的日期
因为parse在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(); } } });
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来做判断条件~
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是easyui日期时间框在IE中的兼容性如何处理的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

现在有不少手机都号称支持蓝牙5.3版本,那么蓝牙5.3和5.2的区别是什么呢,其实它们本质上都是蓝牙5的后续更新版本,在大部分的性能和功能上是没有多少区别的。蓝牙5.3和5.2的区别:一、数据速率1、5.3能够支持更高的数据速率最高可达2Mbps。2、而5.2只能最高达到1Mbps,则说明5.3能够更快、更稳定的传输数据。二、加密控制增强2、蓝牙5.3提高了加密密钥长度控制选项,提高了安全性,能够更好的连接门禁等设备。3、同时,由于管理员控制更加简单,在连接的时候还能更加的便捷、快速,5.2则无

i77700的性能运行win11完全足够,但是用户却发现自己的i77700不能升级win11,这主要是受到了微软硬性条件的限制,所以只要跳过该限制就能安装了。i77700不能升级win11:1、因为微软限制了cpu的版本。2、intel只有第八代及以上版本可以直升win11。3、而i77700作为7代,无法满足win11的升级需求。4、但是i77700在性能上是完全能流畅使用win11的。5、所以大家可以使用本站的win11直装系统。6、下载完成后,右键“装载”该文件。7、再双击运行其中的“一键

浏览器兼容性设置的方法有选择合适的HTML和CSS标准、使用CSS前缀和Reset、使用浏览器兼容性前缀库、检测浏览器特性、使用浏览器兼容性工具和进行跨浏览器测试。详细介绍:1、选择合适的HTML和CSS标准,在编写HTML和CSS代码时,应尽量遵循W3C的标准,不同浏览器对标准的支持程度会有所不同,但遵循标准可以最大程度地提高兼容性;2、使用CSS前缀等等。

随着现代科技的不断发展,无线蓝牙耳机已经成为人们日常生活中不可或缺的一部分。无线耳机的出现解放了我们的双手,让我们可以更自由地享受音乐、通话和其他娱乐活动。然而,当我们乘坐飞机时,我们往往会被要求将手机设置为飞行模式。那么问题来了,飞行模式可以用蓝牙耳机吗?在本文中,我们将探讨这个问题。首先,让我们来了解一下飞行模式的作用和含义。飞行模式是手机的一种特殊模式

Go语言在Linux系统上的兼容性非常好,它能够无缝地在各种Linux发行版上运行,并且支持不同架构的处理器。本文将介绍Go语言在Linux系统上的兼容性,并通过具体的代码示例展示其强大的适用性。1.安装Go语言环境在Linux系统上安装Go语言环境非常简单,只需要下载对应的Go二进制包并设置相关环境变量即可。以下是在Ubuntu系统上安装Go语言的步骤:

1、右键点击程序,发现在打开的属性窗口中,没有找到【兼容性】选项卡。2、在Win10桌面,右键点击桌面左下角的开始按钮,在弹出的菜单里选择【运行】菜单项。3、这时会打开Win10的运行窗口,在窗口中输入gpedit.msc,然后点击确定按钮。4、这时就会打开本地组策略编辑器窗口,在窗口中依次点击【计算机配置/管理模板/Windows组件】菜单项。5、在打开的Windows组件菜单中,找到【应用程序兼容性】菜单项,然后在右侧窗口中找到【删除程序兼容性属性页】设置项。6、右键点击该设置项,在弹出的菜

win10系统中的软件都已经进行了很完美的优化,但是对于最新的win11用户大家肯定都很好奇是不是可以支持这款系统,所以下面就给你们带来了win11支不支持win10软件详细介绍,快来一起了解一下吧。win11支持win10软件吗:1、Win10系统的软件甚至是Win7系统的应用都可以很好的进行兼容。2、经过使用Win11系统的大神反馈目前还没有出现应用不兼容的问题。3、所以大家可以放心大胆的升级,不过普通的用户建议等到Win11发布正式版再升级。4、Win11不仅是兼容性好,而且还有Windo

硬件设备的驱动程序是我们正常使用这个设备最重要的程序之一,但是有时候我们可能会碰到自己下载安装的驱动不兼容,其实系统可以自动找寻兼容的驱动下载安装,下面就一起来看一下吧。win10怎么兼容驱动1、首先找到桌面的此电脑,右键选中打开“属性”2、然后在左侧找到并打开“设备管理器”3、在设备管理器中找到想要下载安装的设备,右键选择“更新驱动程序”4、然后选择“自动搜索更新的驱动程序软件”5、最后等待一段时间弹出下面的窗口就代表驱动安装完成了。
