对chrome和Firefox使用相同的代码,但得到不同的结果
Using same code for chrome and firefox but get different results
我有一个简单的倒计时脚本。该代码适用于chrome,但不适用于火狐浏览器。在火狐中,它显示 NaN,但 chrome 显示倒计时 为什么会发生这种情况的任何想法?
function CountDownTimer(time, name) {
var counter = setInterval(function(){
var today = new Date();
var expire = new Date(time);
var timeRemains = expire - today;
var days = Math.floor(timeRemains / (1000 * 60 * 60 * 24));
var hours = Math.floor(timeRemains / (1000 * 60 * 60));
var mins = Math.floor(timeRemains / (1000 * 60));
var secs = Math.floor(timeRemains / 1000);
var dd = days;
var hh = hours - days * 24;
var mm = mins - hours * 60;
var ss = secs - mins * 60;
if (expire < today) {
clearInterval(counter);
document.getElementById(name).innerHTML = '<span class="expire">expire!</span>';
return;
} else {
if (dd < 10) {
dd = "0" + dd;
}
if (hh < 10) {
hh = "0" + hh;
}
if (mm < 10) {
mm = "0" + mm;
}
if (ss < 10) {
ss = "0" + ss;
}
document.getElementById(name).innerHTML = dd + ' : ' + hh + ' : ' + mm + ' : ' + ss;
}
}, 1000 );
}
CountDownTimer("2012-07-06 19:00:00", "Time1");
Date() 函数似乎不能在所有浏览器中都能很好地工作。尝试在其上使用 setUTC 函数,如下所示:
today.setUTCFullYear(2012);
today.setUTCHours(19, 0, 0, 0);
更新:Date() 构造函数在所有浏览器上都很好,只是在使用"不当"字符串时就不行了。试试这个:
var today = new Date(2012,6,7,19,0,0)
更改如下所示
的日期格式:
CountDownTimer("June 7, 2012 19:00:00", "Time1");
问题出在新的 Date() 格式上,该格式在浏览器中不一致。
JavaScript 中不同浏览器的日期格式问题。
您可以通过将 - 字符转换为/来使其工作。 Cameron的回答应该提供良好的跨浏览器行为,否则考虑使用第三方库,如moment.js
https://stackoverflow.com/questions/802861/javascript-date-manipulation-library
NaN
代表不是一个数字。
如果Leo的建议没有帮助,那么可能值得在组合中添加一些零星的console.log()
,以找出问题所在。
相关文章:
- webpack代码拆分了handlerbs文件——结果是文件很大
- 如何将解析云代码的query.count结果保存在变量中
- 每次运行此代码时,我都会得到不同的结果,这是怎么回事
- 原型中漂亮的代码,如何省略'不是函数'空结果选择器上的错误
- 为什么这个js代码的RSA加密结果与java的RSA标准代码不同
- 显示基于javascript函数结果的HTML代码
- 当我运行代码时,我得到以下结果 []对象对象] [对象对象],但应该给我一个有序数组
- php/mysql搜索结果-当类型>1,同时保持其他类型不>1-代码点火器
- 返回解析云代码关系查询的结果
- 1行代码(console.log),代码中的两个位置=两个结果差异
- 为什么这个JavaScript代码的结果是“;未定义”;
- 如何在ruby on rails中保存和发布Webgl中的JS代码结果
- 对chrome和Firefox使用相同的代码,但得到不同的结果
- 无法在iPhone应用程序上使用PhoneGap和javascript获取JSON结果,但使用相同的代码在Android
- 我怎样才能异步执行 JavaScript 代码片段并等待它们的结果
- Javascript与C++,相同的代码,不同的结果,这是为什么
- 为什么代码似乎有效,但结果中也包含未定义
- 为什么 JSFiddle 不输出此代码的结果
- 如果我有两个选项的代码,单选按钮的结果将无法正常工作
- 如何避免数据结果中的 html 代码