Расписание телепередач

Всем привет.

Стоит задача сделать расписание телепередач. Редактирование и просмотр.

Надо сделать вывод всех за текущий день, и за любой другой день по календарю.

Вопрос - как лучше хранить данные в БД MySql DATETIME или TIMESTAMP.

Я пока храню в DATETIME.

Структура таблицы: id, title, start, finish. title, start - DATETIME.

Вот такое условие вернёт все программы которые будут показывться за 27 января.

И вот я получаю проблемы когда надо получить текущую дату в нужном формате, потому что я не сильно знаком с функциями PHP или Yii по обработке дат.

Пока вот такой изврат

и потом уже $currentDateSqlStart $currentDateSqlEnd могу подставить в запрос.

Вообщем хотел бы по простому получать текущую дату в формате пригодном к операциям типа прибавить или вычесть день, и пригодной к записи в поле типа DATETIME (если не переубедите использовать TIMESTAMP).

Могу я как то у даты в php в виде 2010-02-03 прибавить средствами php один день?

И подумал счас, что можно часть этих операций перенести в MySql…

::)

Если нужно добавить или вычесть несколько дней из даты, то подойдет такой вариант:




$days = 1; // Сколько дней прибавить к дате (положительное или отрицательное).

$date = strtotime('2010-02-03') + $days*86400;



Если нужно считать относительно текущей даты (00:00 часов сегодняшнего дня), то в strtotime достаточно передать date(‘Y-m-d’).

В mysql тоже полно функций по работе с датами: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

Если планируете использовать их, то логично хранить дату в датовом формате =) а не интегером.

P.S.: К передачам за 27 января телевизионщики обычно относят и те, что идут и 28 числа (как правило, до 5 утра), поэтому я бы написал: WHERE START >= ‘2010-01-27 05:00:00’ AND FINISH <= ‘2010-01-28 05:00:00’.

andy_s, спасибо тебе :rolleyes: