来自时间戳记的间隔计时器

时间:2019-03-20 12:43:37

标签: javascript timestamp

我从特定的时间戳中找到了以下简单的计时器脚本:

var el = '.timer';
var start = 1553000000,
    cDisplay = $(el);
var format = function (t) {
    var hours = Math.floor(t / 3600),
        minutes = Math.floor(t / 60 % 60),
        seconds = Math.floor(t % 60),
        arr = [];
    if (hours > 0) {
        arr.push(hours == 1 ? '1 hr' : hours + 'hrs');
    }
    if (minutes > 0 || hours > 0) {
        arr.push(minutes > 1 ? minutes + ' mins' : minutes + ' min');
    }
    if (seconds > 0 || minutes > 0 || hours > 0) {
        arr.push(seconds > 1 ? seconds + ' secs' : seconds + ' sec');
    }
    cDisplay.html(arr.join(' '));
};
setInterval(function () {
    format(new Date().getTime() / 1000 - start);
}, 1000);

http://jsfiddle.net/4eqat9yc/

我想创建一个脚本来模仿交通信号灯周期,例如有40秒的红灯,然后是30秒的绿灯,并且它会无限期地重复。

输出应为红色文本倒计时40秒,然后绿色文本倒计时30秒,从时间戳开始算起周期的开始时间。 (因此,例如,我可以在周期的中间启动脚本,它将显示此间隔剩余的正确时间)

你们能帮我吗?

1 个答案:

答案 0 :(得分:0)

我用简单的python方程找出了如何确定当前运行的间隔的逻辑: 让我们将其简化为5到8秒的间隔,第一是5秒 但是我被困在如何用JS启动

x = 5
y = 8
t = 96

z = t-(t/(x+y)*(x+y)) //python divides without remainder

if z >= x and z > y:
    print y
elif  z >= x and z < y:
    print y
elif  z < x and z < y:
    print x