搜索
首页web前端js教程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中文网其它相关文章!

推荐阅读:

vue判断input输入内容有否有空格

Vuex的mutations与actions使用详解

以上是easyui日期时间框在IE中的兼容性如何处理的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
解决 Windows 11/10 中 KernelBase.dll 错误的方法解决 Windows 11/10 中 KernelBase.dll 错误的方法Apr 21, 2023 am 09:43 AM

许多Windows客户最近报告说,当他们尝试启动程序或游戏时,它会抛出一个错误,指出KernelBase.dll文件丢失或找不到。当正在运行的程序意外崩溃时也会报告此错误。目前,用户不确定要采取什么步骤来解决此问题。他们甚至尝试多次重启Windows系统,效果相同。导致此问题的原因可能有很多,可能是因为系统数据文件损坏、Windows系统过时等。在分析了以上所有要点之后,我们提出了一组修复程序,可以帮助用户修复此问题并顺利使用系统。如果您也遇到同样的问题,请继续阅读本文以了解更多信息。解决方

如何修复 Windows 11 / 10 上的 ntdll.dll 崩溃问题如何修复 Windows 11 / 10 上的 ntdll.dll 崩溃问题May 12, 2023 am 11:40 AM

在您的计算机上首次安装Windows操作系统时,会自动创建ntdll.dll文件。基本上,ntdll.dll是与Windows操作系统相关联的文件,位于WindowsSystem32目录中。如果您看到这个文件的属性,它的文件描述为NT层DLL,它包含Windows操作系统正常工作所需的所有主要NT内核函数。该文件大部分时间在后台运行,但有时它可能会崩溃或无法正确执行操作。通常,当多个应用程序/程序尝试同时访问该文件时,就会发生这种情况。许多Windows用户报告说,当他们访问的

浏览器兼容性浏览器兼容性Sep 14, 2023 am 11:08 AM

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

如何在 Windows 11 上将笔记本电脑投影到电视上如何在 Windows 11 上将笔记本电脑投影到电视上Apr 14, 2023 am 11:25 AM

无线投影您的显示器可能是一个福音,尤其是当您尝试与更多人共享内容时。大多数现代电视都支持某种无线投影,笔记本电脑也是如此。但是你如何开始呢?让我们来了解一下!Windows 11 是否原生支持投影屏幕?是也不是,Windows 11 原生使用 Miracast 进行无线显示投影,同时通过 Chromium 浏览器支持 Chromecast。另一方面,电视与 Miracast 或 Chromecast 捆绑在一起。这使得找到合适的兼容性并让一切在您的设备上正常工作变得困难重重。值得庆幸的是,大多数

easyui是jquery插件吗easyui是jquery插件吗Jul 05, 2022 pm 06:08 PM

easyui是jquery插件。easyui是基于JQuery的一个前台ui界面的插件,用于帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。easyui是个完美支持HTML5网页的框架,可以帮助开发者节省网页开发的时间和规模。

如何进行平稳的PHP5.6到PHP7.4升级,避免兼容性困扰?如何进行平稳的PHP5.6到PHP7.4升级,避免兼容性困扰?Sep 05, 2023 pm 06:57 PM

如何进行平稳的PHP5.6到PHP7.4升级,避免兼容性困扰?随着PHP技术的不断发展,PHP7.4已成为主流的PHP版本,但许多项目仍然停留在较旧的版本,如PHP5.6。升级到PHP7.4可以带来更高的性能、更多的特性和更好的安全性。然而,由于PHP5.6和PHP7.4之间的一些不兼容之处,升级过程可能会带来一些困扰。本文将介绍如何进行平稳的PH

win11改win10系统教程的详细介绍win11改win10系统教程的详细介绍Jul 08, 2023 pm 09:21 PM

微软6月24号正式公布了win11系统,可以看到用户界面、开始菜单等和Windows10X中发现的非常相似。有的朋友在使用预览版的时候发现用的不习惯,想要改win10系统开使用,那么我们要如何操作呢,下面我们就来看看win11改win10系统教程,一起来学习一下吧。1、第一步是从Windows11打开新设置。在这里,您需要转到图像中显示的系统设置。2、在系统设置下,选择“恢复”选项。在这里,您将能够看到“以前版本的窗口”选项。您还可以在它旁边看到一个“返回”按钮,单击此按钮。3、您可以指定要返回

Win10杜比音效的价格是多少?Win10杜比音效的价格是多少?Dec 22, 2023 pm 08:07 PM

很多想买win10杜比音效的小伙伴想问小编,这个多少钱呢?官网上的价格是99元,但是有省钱的方法,下面一起来看看吧。win10杜比音效多少钱介绍:答:win10杜比音效99元。听说这个音效效果非凡,值得购买,有10个人的话建群众筹一波。杜比音效介绍:1、杜比音效技术是一系列用于为影院、家庭和途中提供丰富、清晰且撼人心魄的音效的强大技术。2、通过为用于广播、下载、流式传输、在影院中播放或通过光盘享受的内容提供充满活力的听感体验,该技术可进一步增强娱乐的感染力。3、借助杜比音效,您便可实现为电影、电

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用