Javascript Java脚本代码在Internet Explorer中不工作,而在Google Chrome中工作得非常好
这段代码在GoogleChrome中运行得非常好,而在InternetExplorer中不起作用 它是用JavaScript编写并与HTML一起使用的计时器代码 如果有人可以帮助,chrome和InternetExplorer的控制台截图也附在附件中。它们没有显示错误Javascript Java脚本代码在Internet Explorer中不工作,而在Google Chrome中工作得非常好,javascript,html,javascript-objects,Javascript,Html,Javascript Objects,这段代码在GoogleChrome中运行得非常好,而在InternetExplorer中不起作用 它是用JavaScript编写并与HTML一起使用的计时器代码 如果有人可以帮助,chrome和InternetExplorer的控制台截图也附在附件中。它们没有显示错误 函数makeTimer(){ //var endTime=新日期(“2018年4月29日9:56:00 GMT+01:00”); var endTime=新日期(“2020年5月19日17:30:00 GMT+05:00”);
函数makeTimer(){
//var endTime=新日期(“2018年4月29日9:56:00 GMT+01:00”);
var endTime=新日期(“2020年5月19日17:30:00 GMT+05:00”);
endTime=(Date.parse(endTime)/1000);
var now=新日期();
now=(Date.parse(now)/1000);
var timeLeft=endTime-now;
变量天数=数学下限(timeLeft/86400);
var小时=数学楼层((时间间隔-(天*86400))/3600);
var分钟=数学楼层((时间间隔-(天*86400)-(小时*3600))/60);
var秒=数学地板((时间间隔-(天*86400)-(小时*3600)-(分钟*60));
如果(小时数<“10”){
小时数=“0”+小时数;
}
如果(分钟<“10”){
分钟=“0”+分钟;
}
如果(秒<“10”){
秒=“0”+秒;
}
$(“#天”).html(天+天);
$(“#小时”).html(小时+“小时”);
$(“#分钟”).html(分钟+“分钟”);
$(“#秒”).html(秒+秒);
}
setInterval(函数(){
makeTimer();
}, 1000);代码>
在IE中无效,应为:
19 May 2020 17:30:00 GMT+0500
我想Chrome在日期对象方面有更好的解析器,并且可以容忍不同的格式
问题在于Date.parse
。从ES6开始,它的解析行为是标准化的,因此大多数现代浏览器都非常统一地支持它
然而,正如所指出的,直到ES5,解析行为都依赖于实现,并且在浏览器之间有很大的不同
由于没有任何版本的Internet Explorer完全支持ES6,问题在于IE的解析器无法解析日期,因此返回NaN
无需使用Date.parse
当您试图解析
日期
对象时,您可以简单地将它们转换为数字,具有相同的效果
由于除法(/
)会自动将其操作数强制转换为数字,因此可以省略日期。完全解析:
函数makeTimer(){
//var endTime=新日期(“2018年4月29日9:56:00 GMT+01:00”);
var endTime=新日期(“2020年5月19日17:30:00 GMT+05:00”);
endTime=(endTime/1000);
var now=新日期();
现在=(现在/1000);
var timeLeft=endTime-now;
变量天数=数学下限(timeLeft/86400);
var小时=数学楼层((时间间隔-(天*86400))/3600);
var分钟=数学楼层((时间间隔-(天*86400)-(小时*3600))/60);
var秒=数学地板((时间间隔-(天*86400)-(小时*3600)-(分钟*60));
如果(小时数<“10”){
小时数=“0”+小时数;
}
如果(分钟<“10”){
分钟=“0”+分钟;
}
如果(秒<“10”){
秒=“0”+秒;
}
$(“#天”).html(天+天);
$(“#小时”).html(小时+“小时”);
$(“#分钟”).html(分钟+“分钟”);
$(“#秒”).html(秒+秒);
}
setInterval(函数(){
makeTimer();
}, 1000);代码>
显示运行中的浏览器的屏幕截图而不抛出错误是没有意义的。。。显示IE中控制台的输出…两个屏幕截图现在都已附加。您已经看过这里了吗?错误是明确的,它表示您忘记关闭某个位置(或其他位置)的标记。我认为这与你的JS代码没有任何关系。Chrome原谅了一些像这样的小错误,IE没有。是的,我设法关闭了所有标签,现在屏幕截图更新了。但错误仍然相同您仍然在解析构造函数中的日期,所以我不会说您的ommiting date解析完全正确。
19 May 2020 17:30:00 GMT+0500