关于IE11版本下JS中时间判断的问题

最近在做代码的优化及浏览器的兼容问题。遇到了谷歌、火狐、360兼容模式、IE(8以上)版本对时间判断大小的问题 。
在谷歌、火狐、360、IE11以下IE8以上版本下
var d1="2016-11-11 10:34:49";
//当前时间
// 获取当前时间hhmm的比较值
function getOraNowTimeInt (){
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();

return currentdate;

}

if(d<getOraNowTimeInt())
{
//永远走这的方法体了
}
而在IE11时,就出问题了,
后续通过查资料得知,是IE将“yyyy-yy-mm”转换成了"yyyy/mm/dd"格式
最终解决方法:
function convertTimeToInt(time) {
var result = null;
if(time != null && time != ""){
result = parseInt(time.replace(/-/g,"").replace(/:/g,""),10);
}
return result;
}

// 获取当前时间hhmm的比较值
function getOraNowTimeInt (){
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();

return convertTimeToInt(currentdate);

}
if(convertTimeToInt(d1)<convertTimeToInt())
{
//这样,就永远走这的方法体了
}

转载于:https://www.cnblogs.com/ITyueguangyang/p/6114397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
兼容IE的JS跑马灯的实现方式有很多,其一种比较常见的方式是使用定时器和DOM操作实现。具体步骤如下: 1. 首先获取跑马灯元素和其内部的文本内容; 2. 通过计算文本内容的宽度和跑马灯元素的宽度,判断是否需要滚动; 3. 如果需要滚动,则使用定时器定时更新跑马灯元素的left值,实现滚动效果; 4. 在IE浏览器,需要使用document.documentElement.scrollLeft属性来获取页面滚动距离。 以下是一段简单的兼容IE的JS跑马灯代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS兼容IE跑马灯</title> <style> .marquee { width: 200px; overflow: hidden; border: 1px solid #ccc; } </style> </head> <body> <div class="marquee" id="marquee">这是一段跑马灯文本内容</div> <script> var marquee = document.getElementById('marquee'); var text = marquee.innerText || marquee.textContent; var speed = 50; // 滚动速度,单位为像素/秒 var timer, start, end; // 判断是否需要滚动 if (marquee.offsetWidth < marquee.scrollWidth) { marquee.innerHTML += marquee.innerHTML; // 复制一份文本内容 start = new Date().getTime(); // 记录开始时间 end = start + (marquee.scrollWidth / speed * 1000); // 计算结束时间 timer = setInterval(function() { var now = new Date().getTime(); // 获取当前时间 var left = (now - start) / 1000 * speed; // 计算滚动距离 if (now >= end) { // 到达终点 clearInterval(timer); left = marquee.scrollWidth / 2; // 滚动回起点 setTimeout(function() { marquee.style.left = -left + 'px'; start = new Date().getTime(); end = start + (marquee.scrollWidth / speed * 1000); timer = setInterval(arguments.callee, 20); }, 1000); } else { // 滚动 marquee.style.left = -left + 'px'; if (document.documentElement.scrollLeft > 0) { // 兼容IE document.documentElement.scrollLeft += 1; } } }, 20); } </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值