@grenline123123

Как сделать ежесекундный таймер на php?

Нужен ежесекундный таймер (для подсчета сколько времени работает "насос"), может кто-то помочь? Я весь день сижу гадаю.
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 3
Это можно сделать только при помощи JS
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Запоминать время запуска и вычислять динамически, вычитая это время из текущего времени.
Ответ написан
vilinyh
@vilinyh
Возьмите любую реализацию Event Loop для PHP - ReactPHP или Swoole.

$loop = React\EventLoop\Factory::create();

$loop->addPeriodicTimer(1, function () {

    $now = date('H:i:s');

    $newStatus = Pump::getStatus();
    $runTimer = PumpStatusStorage::getValue();

    if ($runTimer > 0 && $newStatus === Pump::STOPPED) {

        $time = time() - $runTimer;
        echo "{$now}: Pump stopped, worked {$time}s\n";
        PumpStatusStorage::setValue(null);

    } else if ($runTimer === null && $newStatus === Pump::RUN) {

        echo "{$now}: Pump started ... \n";
        PumpStatusStorage::setValue(time());

    }

});

$loop->run();


19:08:12: Pump started ...
19:08:23: Pump stopped, worked 11s
19:08:25: Pump started ...
19:08:30: Pump stopped, worked 5s
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы