倒数计时器在 Firefox 中不起作用
countdown timer doesn't work in firefox
大家好,我有一个倒数计时器,用于在网站上运行。不幸的是,它在 Firefox 中不受支持,尽管它在 Chrome 和 Opera 中 运行 没问题(其他浏览器尚未检查)。
其背后的理论是时间戳 "END" 设置在页面上并保存在数据库中(一切正常)。然后检索 END (PHP) 并将其送入 jQuery 函数,该函数从当前时间倒计时到 END。
php 一切正常,所以我的 jQuery 函数如下所示,因为我确定它位于此处的某个地方。
提前谢谢大家!
// Code for a countdown timer
var countdown = function(end, elements){
var _second = 1000,
_minute = _second*60,
_hour = _minute*60,
_day = _hour*24,
finish = new Date(end),
timer,
calculate = function(){
var now = new Date(),
remaining = finish.getTime() - now.getTime(),
data;
if (isNaN(finish)){
console.log("Invalid date/time");
return;
};
if (remaining <= 0){
clearInterval(timer);
if (typeof callback ==='function'){
callback();
}
} else {
if (!timer){
timer = setInterval(calculate, _second);
};
data = {
"days" : Math.floor(remaining/_day),
"hours" : Math.floor((remaining % _day) / _hour),
"minutes" : Math.floor((remaining % _hour) / _minute),
"seconds" : Math.floor((remaining % _minute) / _second)
};
if (elements.length){
for (x in elements){
var x = elements[x];
data[x] = ('00' + data[x]).slice(-2);
document.getElementById(x).innerHTML = data[x];
};
};
};
};
calculate();
}
不好意思,那么调用如下:
<script>
var callback = function(){console.log('Done!')};
countdown("<?php get_deadline($conn);?>", ['days', 'hours', 'minutes', 'seconds'], callback); // Get deadline for exam name
</script>
正如我所说,php 功能运行良好!
我在另一个方面找到了解决方案,located here
正如@charlietfl 所建议的那样,只需要使格式在浏览器之间可读即可。
我使用的代码在原始脚本的第 8 行:
finish = new Date(end.replace(/\-/g,'\/').replace(/[T|Z]/g,' ')),
timer,
大家好,我有一个倒数计时器,用于在网站上运行。不幸的是,它在 Firefox 中不受支持,尽管它在 Chrome 和 Opera 中 运行 没问题(其他浏览器尚未检查)。
其背后的理论是时间戳 "END" 设置在页面上并保存在数据库中(一切正常)。然后检索 END (PHP) 并将其送入 jQuery 函数,该函数从当前时间倒计时到 END。
php 一切正常,所以我的 jQuery 函数如下所示,因为我确定它位于此处的某个地方。
提前谢谢大家!
// Code for a countdown timer
var countdown = function(end, elements){
var _second = 1000,
_minute = _second*60,
_hour = _minute*60,
_day = _hour*24,
finish = new Date(end),
timer,
calculate = function(){
var now = new Date(),
remaining = finish.getTime() - now.getTime(),
data;
if (isNaN(finish)){
console.log("Invalid date/time");
return;
};
if (remaining <= 0){
clearInterval(timer);
if (typeof callback ==='function'){
callback();
}
} else {
if (!timer){
timer = setInterval(calculate, _second);
};
data = {
"days" : Math.floor(remaining/_day),
"hours" : Math.floor((remaining % _day) / _hour),
"minutes" : Math.floor((remaining % _hour) / _minute),
"seconds" : Math.floor((remaining % _minute) / _second)
};
if (elements.length){
for (x in elements){
var x = elements[x];
data[x] = ('00' + data[x]).slice(-2);
document.getElementById(x).innerHTML = data[x];
};
};
};
};
calculate();
}
不好意思,那么调用如下:
<script>
var callback = function(){console.log('Done!')};
countdown("<?php get_deadline($conn);?>", ['days', 'hours', 'minutes', 'seconds'], callback); // Get deadline for exam name
</script>
正如我所说,php 功能运行良好!
我在另一个方面找到了解决方案,located here
正如@charlietfl 所建议的那样,只需要使格式在浏览器之间可读即可。
我使用的代码在原始脚本的第 8 行:
finish = new Date(end.replace(/\-/g,'\/').replace(/[T|Z]/g,' ')),
timer,