如何创建在特定时间重置的倒计时
How Do I Create A Countdown Time That Resets At A Specific Time
首先让我说,我对javascript理解不深,但我知道如何通过自己的方式为页面编写小脚本。我的一个客户需要我为一个网站做以下事情:
- 在用户的计算机上查找用户的本地时间
- 把当地时间从下午6点减去
- 在倒计时中显示该时间,或者只显示一条语句,让用户知道当天还有多少时间发货
- 下午6点后,时间重置或消失,直到下一个工作日
到目前为止,我已经能够创建从本地计算机获取时间的逻辑。我以为我可以使用datejs,但它不计算一天中的小时数。
这是我目前的代码:
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var suffix = "AM";
if (hours >= 12)
{
suffix = "PM";
hours = hours - 12;
}
var suffix = "AM";
if (hours >= 12)
{
suffix = "PM";
hours = hours - 12;
}
if (hours == 0)
{
hours = 12;
}
if (minutes < 10)
minutes = "0" + minutes;
document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>");
这个怎么样:
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
}
if (minutes < 10)
minutes = "0" + minutes
if (suffix == "PM" && hours >= 6)
{
document.write("You're too late for next day shipping!");
}
else
{
var hoursLeft = 5 - hours;
var minsLeft = 60 - minutes;
document.write("<b> You've got " + hoursLeft + " hours and " + minsLeft + " minutes left to qualify for next day shipping! </b>")
}
如果这个网站允许我评论别人的答案,我会把这归功于Giovanni,但由于我还不能评论别人的工作,这里需要改变。
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var suffix = "AM";
if (minutes < 10)
minutes = "0" + minutes
if (hours >= 18)
{
document.write("You're too late for next day shipping!");
}
else
{
var hoursLeft = 17 - hours;
var minsLeft = 60 - minutes;
if(minsLeft==60){
minsLeft=0;
hoursLeft++;
}
document.write("<b> You've got " + hoursLeft + " and " + minsLeft + " minutes left to qualify for next day shipping! </b>")
}
原因是,在凌晨5点订购的人可能会认为他们必须在下一个小时内提交,以便在第二天发货,而实际上他们还有接下来的13个小时。
编辑:看到您对时区的关注,这里有一篇您可能感兴趣的帖子。
编辑2:发布了错误的链接。正确的答案应该是现在,尽管它可能有点过时。
我昨天也解决了类似的问题,所以这很容易。这是javascript代码:
function start_onload(last_hour){
var timeout_message = document.getElementById('timeout_message');
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
var seconds = currentTime.getSeconds();
var expire_time = 0; // in seconds
if (hours<last_hour) {
expire_time += (last_hour-hours-1)*3600;
expire_time += (59-minutes)*60;
expire_time += (59-seconds);
}
else {
timeout_message.innerHTML = 'It''s after '+last_hour+' o''clock!';
return;
}
var expire_time = currentTime.getTime() + 1000*expire_time;
//console.log(expire_time, hours, minutes, seconds, expire_time);
function countdown_session_timeout() {
var current_time = new Date().getTime();
var remaining = Math.floor((expire_time - current_time)/1000);
if (remaining>0) {
hours = Math.floor(remaining/3600);
minutes = Math.floor((remaining - hours*3600)/60);
seconds = remaining%60;
timeout_message.innerHTML = 'Countdown will stop in '+ hours + ' hours ' + minutes + ' min. ' + seconds + ' sec.';
setTimeout(countdown_session_timeout, 1000);
} else {
timeout_message.innerHTML = 'Time is up!';
}
}
countdown_session_timeout();
}
这里有完整的脚本@pastebin.com。
这是一个简单的倒计时计时器,从函数运行后30秒开始,到0结束。达到0后,它会自动重置计数器。它再次进入30秒,这个过程在循环中继续
window.onload=function(){startCountDown(30,1000,myFunction);}函数startCountDown(i,p,f){var pause=p;var fn=f;var countDownObj=document.getElementById("countDown");countDownObj.count=函数(i){//注销计数countDownObj.innerHTML=i;如果(i==0){//execute函数//fn();startCountDown(301000,myFunction)//停止return;}setTimeout(function(){//重复countDownObj.count(i-1);},暂停);}//将其设置为countDownObj.count(i);}函数myFunction(){};</script>
相关文章:
- 双倒计时定时器
- 如何为PHP/JS游戏制作倒计时/定时器
- J2EE中的倒计时定时器
- jquery倒计时定时器-按键重置
- Javascript、倒计时定时器和显示文本
- WPF循环倒计时定时器
- 暂停时出现倒计时定时器javascript错误
- 定时器、时区、服务器端时间、客户端倒计时
- 为什么不'我的定时器功能倒计时
- 倒计时定时器的代码从javascript切换到jquery
- 停止倒计时定时器Javascript onClick
- 倒计时定时器与随机数生成器
- 倒计时定时器不工作
- JQuery定时器倒计时定时器
- javascript/jquery倒计时定时器与JSfiddle示例
- 暂停倒计时定时器javascript php
- Angular.js倒计时定时器不滴答
- jQuery倒计时-重置定时器
- 倒计时定时器使用Moment js
- Java脚本定时器倒计时