Я создаю ТВ-гид, в котором перечисляются программы, которые появляются (и в некоторых списках, предыдущие эфиры из прошлого), со всеми данными, хранящимися в базе данных. Он работает в PHP, моя версия – 5,28 (до 5:30 или 6 скоро).
Ниже приведен скрипт (обратите внимание, что поле airdate хранится как DATETIME в базе данных):
[Отказ от ответственности: сценарий не мой, но общий, который я скачал, и изменен в соответствии с моими потребностями.]
<? //connect to mysql //change user and password to your mySQL name and password mysql_connect("localhost","root","PASSWORD"); //select which database you want to edit mysql_select_db("tvguide1"); //select the table $result = mysql_query("select * from epdata3 order by airdate LIMIT 20;"); //grab all the content while($r=mysql_fetch_array($result)) { //the format is $variable = $r["nameofmysqlcolumn"]; //modify these to match your mysql table columns $programme=$r["programme"]; $channel=$r["channel"]; #$airdate = strtotime($r['airdate']); $airdate = strtotime($r['airdate']); $now = strtotime("NOW"); $currentYear = date("Y", $now); $yearOfDateFromDatabase = date("Y", $airdate); if($yearOfDateFromDatabase == $currentYear) $dateFormat = "F jS - g:ia"; // dateFormat = 24 December else $dateFormat = "F jS, Y - g:ia"; // dateFormat = 01 January 2010 $currentTime = date("g:ia", $airdate); // format of "Y" gives four digit year ie 2009 not 09 $airdateFormatted = date($dateFormat, $airdate); $sDate = date("F dS, Y - g:ia",$airdate); $episode=$r["episode"]; $setreminder=$r["setreminder"]; echo "<tr><td><b>$programme</b></td><td>showing on $channel</td>"; echo "<td>$airdateFormatted</td><td>$episode</td><td>$setreminder</td></tr>"; } ?>
Это отображает все эпизоды, и если в следующем году они появятся, они отобразятся с этим годом:
Телевизионная программа, следующая на Channel1 30 декабря 2009 г. – 18:00 «Эпизод 1 – Фотосинтез» Настроить напоминание
Телевизионная программа, следующая на Channel1 6 января – 2:45 вечера «Эпизод 2 – За музыкой» Напоминание набора
Телевизионная программа, следующая на Channel1 7 января – 20:00 «Напоминание о максимальных автомобильных преступлениях»
Однако, что бы я хотел, это удалить определенные записи по истечении определенного периода времени (но это должно быть установлено где-то в скрипте, так как длина программы меняется), а не меня, вручную удаляя их из базы данных. Некоторые программы длится 30 минут, остальные 60 минут … в основном меняются.
Я бы хотел, чтобы это было сделано (обратите внимание, что в первом листинге не указан дата, поскольку это текущая дата.):
Телевизионная программа, показывающая следующий на Channel1 6:00 вечера «CCTV Cities – Wigan» Set Reminder
Телевизионная программа, следующая на Channel1 9 января – 2:45 вечера «Римская империя – история народа» Напоминание
Телевизионная программа, следующая на Channel1 10 января – 20:00 «Знаменитости 100 наихудших мгновений» Напоминание
но я не знаю, как настроить его для этого с помощью PHP или функции date (). Он отлично работает с датами и показывает их. У меня нет доступа к заданиям cron, поскольку это происходит при установке Apache на локальном хосте в Windows Vista Home Edition.
Если бы кто-нибудь мог помочь мне понять это, это было бы очень признательно – вся помощь очень ценится.
Я не ставил это как живой сайт, так как сейчас он «в аду развития», и я хочу как можно лучше понять все.