Я создаю ТВ-гид, в котором перечислены программы, которые появятся (и в некоторых списках, предыдущие выпуски из прошлого) со всеми данными, хранящимися в базе данных. Он работает на 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>";
}
?>
Здесь отображаются все готовящиеся эпизоды, а если они появятся в следующем году, они отображают их вместе с годом, например:
Телепередача, следующая на канале 1, 30 декабря 2009 г. - 18:00. «Эпизод 1 - Фотосинтез». Напоминание
Телепередача, которая будет показана на канале 1 6 января - 14:45. «Эпизод 2 - За музыкой». Напоминание
Телепередача, которая будет показана на канале 1 с 7 января до 20:00. Напоминание о "Совершенных автомобильных преступлениях"
Однако я хотел бы удалить определенные записи по истечении определенного периода времени (но это должно быть задано где-то в сценарии, поскольку длины программ различаются), а не удалять их вручную из базы данных. , Некоторые программы длятся 30 минут, другие - 60 минут ... в основном это разные длины.
Я хотел бы, чтобы это было так (обратите внимание, что в первом листинге дата не отображается, поскольку она является текущей датой.):
Телепередача будет показана на Первом канале в 18:00. «CCTV Cities - Wigan» - напоминание
Телевизионная программа, которая будет показана на Первом канале 9 января - 14:45. «Римская империя. История ее народа». Напоминание
Телепередача, следующая на канале 1, 10 января - 20:00. Напоминание о "100 знаменитостях в мире ужасов"
но я не знаю, как настроить это, чтобы сделать это с помощью PHP или функции date (). Он отлично работает с датами, и показывает их.
У меня нет доступа к заданиям cron, так как они установлены на локальном хосте Apache в Windows Vista Home Edition.
Если бы кто-нибудь мог помочь мне понять это, это было бы очень ценно - вся помощь очень ценится.
Я не назвал это живым сайтом, так как он сейчас "в разработке", и я хочу как можно точнее все исправить.