Диапазон времени

CnecHa3

Постоялец
Регистрация
10 Фев 2007
Сообщения
105
Реакции
20
Как сделать так чтобы запись из таблицы выводилась в определённое время и до определённого времени?

Пример:
время 21:00, данные из таблицы от 20:00 до 22:00
время 21:30, данные из таблицы от 20:00 до 22:00
время 22:00, данные из таблицы от 22:00 до 23:00
время 00:00, данные из таблицы от 23:00 до 02:00
 
Из какой таблицы? Речь идет о PHP или о MySQL ?
Какой тип данных? Приведите пример нескольких записей в точности как они в таблице записаны.
 
Если сообщения, которые нужно отобразить, у тебя привязаны к дате, то тогда так:
PHP:
if (date('H:i')== "21:00") {
$where=mktime (20,0,0,date('m'),date('d'),date('Y')); 
$where1=mktime (22,0,0,date('m'),date('d'),date('Y'));
}
elseif(date('H:i')== "21:30"){
$where=mktime (20,0,0,date('m'),date('d'),date('Y')); 
$where1=mktime (22,0,0,date('m'),date('d'),date('Y'));
}
elseif(date('H:i')== "22:00"){
$where=mktime (22,0,0,date('m'),date('d'),date('Y')); 
$where1=mktime (23,0,0,date('m'),date('d'),date('Y'));
}// Ну и так далее...
$query=mysql_query("SELECT * FROM tab1 WHERE `time_mess`>='".$where."' AND `time_mess`<='".$where1."'");
а если у тебя какие то фиксированные сообщения типа: "Доброе утро", "Доброй ночи" и т.д. то тогда всё значительно проще:
PHP:
if (date('H:i')== "21:00") {
$id=1;}
elseif(date('H:i')== "21:30"){
$id=2;}
query=mysql_query("SELECT * FROM tab1 WHERE `id_mess`='".$id."'");
 
Из какой таблицы? Речь идет о PHP или о MySQL ?
Какой тип данных? Приведите пример нескольких записей в точности как они в таблице записаны.
Речь идет о PHP & MySQL, в таблице поля(тип TIME)
Код:
restorans
(`id`,`title`,`from`,`until`)
('1','Cili Pica','08:00:00','22:00:00') // тут все понятно from <= H AND until >= H
('2','Cili Pica #2','22:00:00','03:00:00') // а вот тут как? ведь 03:00:00 > 22:00:00 т.к. новый день
 
Речь идет о PHP & MySQL, в таблице поля(тип TIME)
Код:
restorans
(`id`,`title`,`from`,`until`)
('1','Cili Pica','08:00:00','22:00:00') // тут все понятно from <= H AND until >= H
('2','Cili Pica #2','22:00:00','03:00:00') // а вот тут как? ведь 03:00:00 > 22:00:00 т.к. новый день
Я демаю нужно использовать формат времени AM или PM.
Вот инфа
 
а вот тут как? ведь 03:00:00 > 22:00:00 т.к. новый день
Если смотреть на эти цифры как на время без даты, то как раз 03:00:00 < 22:00:00, все верно. К тому же у вас в таблице всегда и безусловно будет второе время больше первого, даже условия задавать не нужно. А если нужно посчитать разницу между часами, то в случае если второе время меньше, чем первое - нужно прибавить ко второму 24 часа и считать разницу.
 
  • Заблокирован
  • #7
Если хранить время в формате Unix-stamp то проблемы как бы нет.
Переводите свои ограничители времени в этот же формат и данные будут прекрасно выводиться вне зависимости от того что уже новые сутки.
 
Назад
Сверху