Всем привет! Есть база данных MySql с таблицами с полями TIME. Это для расписания. Не могу понять почему $row["TimeBegin"] == 0 true для времени от '00:00:00' до '01:00:00'. То есть при времени в базе данных '00:59:00' это сравнение true. Понятно, что === будет false, но почему, если время меньше часа, то не срабатывает. Не пинайте сильно, я только начал разбираться с php.
@savsoft это особенность PHP. все значения поступают из базы в скрипт как строки. '00:00:00' это не время, это строка. когда ты сравниваешь строку с числом в ПХП, он пытается сначала вычислить из строки число. для этого он тупо берет первые символы, пока они могут интерпретироваться как число, а хвост отбрасывается. Код (Text): C:\>php -r "var_dump(' 03 abracadabra' == 3);" bool(true) то есть как-то так приводится к числу: '00:00:00' => 0 '00:00:01' => 0 '08:00:00' => 8 '01abracadabra' => 1 и т.д. правильно работать со временем или датой можно ЯВНО преобразовав строку либо в таймстамп (число), либо в класс DateTime например так: PHP: <?php var_dump(strtotime('00:01:00') - strtotime('today')); // int(60) -- то есть время в секундах --- Добавлено --- https://php.ru/forum/threads/rabota-s-datoj-v-mysql-php-zagotovka-faq.50838/