У меня есть сценарий php, где мне нужно убедиться, что предварительно установленное «будущее» время не прошло.расчет оставшегося времени с использованием php time()
Когда время первоначально вошли (или прошло и потребности relogged), я беру:
$newTime = time() + 15000; // 2.5 minutes from "now"
Система не бросая это в БД без проблем и числа являются правильными.
Теперь, когда страница загружена, она вытягивает номер из БД и загружает его в .php
файл:
error_reporting(E_ALL);
ini_set('display_errors',1);
$tname = $_SESSION['username']."Data";
$results = $conn->query("SELECT val FROM $tname where pri='pettyTimer'") or die(mysqli_error($conn));
//$conn declared elsewhere for connection and does work properly
$row = $results->fetch_assoc();
$timer = $row['val'];
Я затем сравнивая времена:
$now = time();
if ($timer > time()) { //script below
} else {
//more script that seems to be working fine
}
Когда original conditional $timer > time()
is true Я пытаюсь сломать минуты и секунды оставшегося времени и повторять их в базовом формате, который может быть читаемым пользователю:
$raw = ($timer - $now);
$minutesLeft = floor($raw/60000);
$totalMinutes2Mils = $minutesLeft * 60000;
$totalRemainingSecs = round(($raw - $totalMinutes2Mils)/(1000));
echo "You are still laying low from the last job you ran. You still have ".$minutesLeft." Minutes and ".$totalRemainingSecs." Seconds left.";
Моя проблема заключается в том, что время не меняется при обновлении/перезагрузке страницы.
повторил я как time()
и $timer
и они 15000 миллисекунд друг от друга, когда я первый зарядил его, так что это только должно существовать (условное быть правдой) в течение 2,5 минут, но я работал по крайней мере 5 минут с момента моего последнего и он все равно на 14 секунд.
Может кто-то, пожалуйста, дважды проверьте мою математику, чтобы убедиться, что я правильно ее вычисляю? Благодаря!
'time()' возвращает метку времени в __секундах__, а не миллисекундах. Даже учитывая это, ваша арифметика повсюду. 15000 миллисекунд - 15 секунд, а не 2,5 минуты. 15000 секунд - чуть более 4 часов. –