Нужна помощь по эпохе UNIX

Последние 2 часа я гуглил и выяснил, что проблема связана с эпохой Unix.

То, что я хочу сделать, это обратный отсчет в php. Как вы можете видеть ниже, (дайте им буквы, чтобы их было легче отсылать).

B минус C равен A. Но это дает мне это: «31.1269 19:00:08» но я бы хотел иметь «00/00/00 00:00:08».

(A) 31.1269 19:00:08 = (B) 25.03.15 00:13:26 — (C) 25.03.15 00:13:18

И эта проблема вызывает проблему в моем обратном отсчете. Когда я хочу начать обратный отсчет с 10:00 (мин, сек), он начинает обратный отсчет с 60:00, а когда он достигает 50:00, обратный отсчет прекращается. Так что это работает! через 10 минут он останавливается, но проблема в том, что он отсчитывает от 60. Так что, я думаю, это вызвано эпохой Unix. Если я могу инициализировать ненужную часть, в дате, к нулю или нулю, я могу решить проблему.


$pastTime = $currentTime - $row['startTime'];
if($pastTime >= $row['durationTime']){
$processStatus = "Completed";
$remainingTime = 0;
}else{
$processStatus = "in Process";
$remainingTime = $durationTime - $pastTime;
}
echo "<td>" . date('i:s', $remainingTime) . "</td>";
echo "<td>$processStatus</td>";
echo "</tr>";

Это часть моего кода. Итак, у меня проблемы, когда я делаю это; date('i:s', $remainingTime), Все переменные, которые вы видите, содержат секунды, которые генерируются time() функция.

-1

Решение

Вы не делитесь никаким кодом, но я полагаю, что вы вычитаете две метки времени, чтобы вычислить разницу в секундах, а затем форматируете результат как метку времени Unix.

Проблема в этом последнем шаге. Когда вы вычитаете два числа, вы получаете (в основном) правильное число, но затем вы решаете использовать (предположительно) date() для отображения.

Вместо этого вы можете попробовать использовать два DateTime объекты, использование diff чтобы получить разницу (как DateInterval объект), а затем использовать DateInterval::format чтобы получить формат, который вы на самом деле хотите.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]