#php
#php
Вопрос:
У меня возникла проблема при попытке сравнить два раза, то, что я хочу сделать, это что-то вроде этого:
$time = date("H:i:sa");
//мое время на моем столе выглядит так 00:20:00
это отголосок $row['time']
if (strtotime($row['time']) 300 >= strtotime($time ))
{
echo "You are out";
exit();
}
else
{
echo "You are in";
exit();
}
Я хочу проверить, больше ли TimeArrive 5 минут, чем текущее время, но я понятия не имею, что я делаю не так, код, кажется, что-то делает, но я думаю, что это не работает, по крайней мере, если я пытаюсь повторить, я не получаю правильное время, например, если я echo strtotime($TimeArrive) 300;
просто выводю 300
.
Я уже проверил некоторые темы здесь, но большинство из них не работают в моем коде или просто выводят те же 300, что я получаю…
Небольшой тест:
if (strtotime($row['TimeIn'],strtotime(" 5 minutes")) <= strtotime($t)) {
Все еще безуспешно пытаюсь таким образом
Комментарии:
1. Если вы не размещаете время в базе данных или не используете сеансы и постоянно проверяете при каждой загрузке страницы, вам нужно будет использовать javascript для этого.
2. @Mech одно из значений — $ TimeArrive Я получаю его из базы данных, и значения в базе данных хранятся следующим образом 00:20:00
3. Обновил вопрос с помощью моего вывода sql
4. Дважды проверьте свои часовые пояса как в PHP, так и в базе данных. Они должны быть одинаковыми, и в долгосрочной перспективе это упростит задачу, если они оба будут UTC.
5. @AlexBarker они одинаковы, я также заставляю их быть одинаковыми на странице php
Ответ №1:
Хорошо, я обнаружил проблему!
Мне пришлось преобразовать его обратно с помощью date()
вот почему я получал все эти цифры…
Окончательный код будет выглядеть примерно так:
$timechecker = date("H:i:sa",strtotime($row['TimeIn']) 60);
if ($timechecker <= $t) {
Спасибо, всем в комментариях, пытающимся мне помочь, это заставило меня обратить внимание на некоторые вещи, которые я не искал, подтверждая, каким был мой вывод: D