如何创建在特定时间重置的倒计时

How Do I Create A Countdown Time That Resets At A Specific Time

本文关键字:定时间 倒计时 何创建 创建      更新时间:2023-11-07

首先让我说,我对javascript理解不深,但我知道如何通过自己的方式为页面编写小脚本。我的一个客户需要我为一个网站做以下事情:

  1. 在用户的计算机上查找用户的本地时间
  2. 把当地时间从下午6点减去
  3. 在倒计时中显示该时间,或者只显示一条语句,让用户知道当天还有多少时间发货
  4. 下午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>