Интервал таймера от отметки времени - PullRequest
0 голосов
/ 20 марта 2019

Я нашел следующий простой скрипт для таймера с определенной отметкой времени:

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 голосов
/ 20 марта 2019

Я понял логику с помощью простого уравнения 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...