У меня есть таблица "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"
Может быть, ваша конфигурация часового пояса PHP отличается. Попытайтесь получить более подробную информацию, например
echo "result 0, because $b != $today or $c < $time; my datetime is " . date('c');
ini_set('error_reporting', E_ALL); ini_set('display_errors', 1);
Я попробовал ваш php-скрипт с вашими данными, но он отлично подходит для меня. Может быть, ваша проблема связана с часовым поясом, поскольку date() возвращает текущий часовой пояс, определенный в параметре date.timezone php.ini. Например, если вы тестируете свою программу в 12:00, а время вашего UTC составляет 2 или более часов ниже, тест завершится с ошибкой. Чтобы этого избежать, либо определите текущий TZ в php.ini, либо задайте часовой пояс непосредственно на вашем php-скрипте, используя _date_default_timezone_set() _. Последнее может быть полезно, если пользователи не имеют одного и того же TZ. Вы можете сохранить TZ в таблице пользователя и получить его для правильной инициализации в вашем скрипте с помощью _date_default_timezone() _
Когда вы вставляете в базу данных, убедитесь, что вы вставляете время с AM/PM, чтобы вы могли правильно сравнивать. дата ("h A"); //11 вечера
Код будет работать, только если вы запустите его между полуночью (00:00) и 11:59 (утра) в субботу. H
- 24-часовое время. Возможно, добавьте переменные в выражения echo
чтобы вы могли видеть такие вещи, как компьютер.