谷歌提供的计时器脚本不满意
Timer Script Supplied by Google not happy
谷歌提供给我们的代码有点小问题,用于某些动态广告创意的计时器。
<!DOCTYPE html>
<html>
<head>
<script>
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
window.onload = function () {
// Calculate time left till 1600 ZA (1400 GMT)
var currTime = new Date();
var endTime = new Date(currTime.getFullYear(),currTime.getMonth(),currTime.getDay(), 14, 0, 0, 1);
var timeLeft = (endTime - currTime) / 1000;
var display = document.querySelector('#time');
if (timeLeft > 0) {
startTimer(timeLeft, display);
}
};
</script>
</head>
<body>
<div>Registration closes in <span id="time">00:00</span> minutes!</div>
</body>
</html>
查看代码的 HTML 仅显示以下行:
注册将在00:00分钟后关闭!
就目前而言,它什么也没做,我相信互联网的集体知识可以帮助解决这个问题:)提前感谢!
尝试以下日期计算(请参阅 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours):
var currTime = new Date();
var endTime = new Date();
endTime.setHours(14,0,0,0);
var timeLeft = (endTime.getTime() - currTime.getTime()) / 1000;
alert(timeLeft);
您正在使用getDay()
构造endTime
- 这将返回星期几,0 表示星期日。 您需要使用 getDate()
,它将返回月份中的某一天:
var endTime = new Date(currTime.getFullYear(),currTime.getMonth(),currTime.getDate(), 14, 0, 0, 1);
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
window.onload = function () {
// Calculate time left till 1600 ZA (1400 GMT)
var currTime = new Date();
var endTime = new Date(currTime.getFullYear(),currTime.getMonth(),currTime.getDate(), 14, 0, 0, 0);
var timeLeft = (endTime - currTime) / 1000;
var display = document.querySelector('#time');
if (timeLeft > 0) {
startTimer(timeLeft, display);
}
};
<div>Registration closes in <span id="time">00:00</span> minutes!</div>
请注意,这些计算完全取决于客户端计算机上设置的日期/时间 - 如果您有重要内容依赖于此,则应从信任的服务器检索时间。
相关文章:
- 当有许多形式时,Fancybox脚本不起作用
- Aureliaview中的脚本不起作用
- 淡入淡出脚本不起作用
- 我应该如何衡量JS的单元测试覆盖率?我可以'我对jscoverage不满意
- 从jquery对话框恢复原始数据,脚本不起作用
- 谷歌如何保护其java脚本不被机器人执行
- 我的脚本不起作用
- jquery ajax到php脚本不保存数据
- 用于wooccommerce的简单JQuery脚本不起作用
- 为什么我的JavaScript / JSON脚本不能在Internet Explorer中工作
- 简单的拖放JS脚本不起作用
- jquery和JavaScript脚本不起作用
- 为什么 JQuery 脚本不删除表行
- jQuery脚本不想一起工作
- jquery脚本不起作用
- 为什么这个jquery脚本不起作用
- 在我打开控制台之前,IE9脚本不会运行
- 使用ajax运行php脚本不会显示任何结果
- 带有ajax xml请求的Node js脚本不起作用
- 谷歌提供的计时器脚本不满意