Как сравнить день и время с текущим днем и временем, используя переменную в php sql

0

У меня есть таблица "user"

id | name | day | time |
 1 | john |  6  |  11  |

я хочу сравнить с coloumn 'day' и 'time' текущего дня и времени, я делаю что-то неправильно здесь? все, что я знаю, это то, что 6 - суббота от http://php.net/manual/en/function.date.php

$today = date("w");
$time = date("H");
$query = "SELECT name, day, time FROM 'user'";
$result = mysql_query($query);  
$row = mysql_fetch_assoc($result);

$a = $row['name'];
$b = $row['day'];
$c = $row['time'];

if($b == $today AND $c >= $time)
{
    echo 'success';
}
else
{
    echo "result 0";
}

но вывод "результат 0"

  • 0
    Вы запускали код после 11 утра в субботу?
  • 0
    да, в моей стране сегодня суббота 12.02
Показать ещё 1 комментарий
Теги:

4 ответа

0

Может быть, ваша конфигурация часового пояса PHP отличается. Попытайтесь получить более подробную информацию, например

echo "result 0, because $b != $today or $c < $time; my datetime is " . date('c');
  • 0
    он показывает «результат 0, потому что! = 6 или <19; моя дата-время 2018-09-15T19: 07: 18 + 07: 00», он не показывает $ b и $ c
  • 0
    Так что проблема с результатом SQL. Попробуйте добавить в начале кода: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1);
Показать ещё 1 комментарий
0

Я попробовал ваш php-скрипт с вашими данными, но он отлично подходит для меня. Может быть, ваша проблема связана с часовым поясом, поскольку date() возвращает текущий часовой пояс, определенный в параметре date.timezone php.ini. Например, если вы тестируете свою программу в 12:00, а время вашего UTC составляет 2 или более часов ниже, тест завершится с ошибкой. Чтобы этого избежать, либо определите текущий TZ в php.ini, либо задайте часовой пояс непосредственно на вашем php-скрипте, используя _date_default_timezone_set() _. Последнее может быть полезно, если пользователи не имеют одного и того же TZ. Вы можете сохранить TZ в таблице пользователя и получить его для правильной инициализации в вашем скрипте с помощью _date_default_timezone() _

  • 0
    раньше я пытался «повторить $ time», это говорит о 13, но когда я пытаюсь использовать date_default_timezone_set, он говорит, что 19 - это текущее время в моем городе. но это все равно ошибка, и когда я пытаюсь "повторить $ a / $ b / $ c", он ничего не показывает
0

Когда вы вставляете в базу данных, убедитесь, что вы вставляете время с AM/PM, чтобы вы могли правильно сравнивать. дата ("h A"); //11 вечера

0

Код будет работать, только если вы запустите его между полуночью (00:00) и 11:59 (утра) в субботу. H - 24-часовое время. Возможно, добавьте переменные в выражения echo чтобы вы могли видеть такие вещи, как компьютер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню