Я создаю телегид, в котором перечислены программы, которые появляются (и в некоторых списках, предыдущие эфиры из прошлого), со всеми данными, хранящимися в базе данных. Он работает в PHP, моя версия - 5,28 (до 5:30 или 6 скоро).ТВ-гид, написанный на PHP - проблемы с функциями datetime() и базы данных
Ниже приведен скрипт, который работает (обратите внимание на поле 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 - 6:00 вечера «Эпизод 1 - Фотосинтез» Установить напоминание
ТВ Программа показывает следующий на CHANNEL1 6 января - 2:45 вечера «Эпизод 2 - За Music» Установить напоминание
Телепрограмма показывает следующий на CHANNEL1 7 января - 8:00 PM «Преступление Окончательных автомобилей» Установить напоминание
Однако то, что я хотел бы, чтобы это сделать, это удалить определенные записи после определенного периода времени истекло (но это будет иметь чтобы быть установленным где-то в сценарии, так как длина программы меняется), а не меня, вручную удаляя их из базы данных. Некоторые программы длится 30 минут, остальные 60 минут ... в основном меняются.
Что я хотел бы, чтобы это сделать это (уведомление о том, что первый список не показывает дату, как это текущая дата.):
ТВ Программа показывает следующий на CHANNEL1 6:00 вечера «CCTV городов - Уиган «Установить напоминание
ТВ Программа показывает следующий на CHANNEL1 9 января - 2:45 PM„Римская империя - История его народа“Установить напоминание
ТВ Программа показывает следующий на CHANNEL1 10 января - 8:00 вечера» Celebrity 100 Worst Moments "Напоминание
, но я не знаю, как настроить его для этого с помощью PHP или функции date(). Он отлично работает с датами и показывает их. У меня нет доступа к заданиям cron, поскольку это происходит при установке Apache на локальном хосте в Windows Vista Home Edition.
Если кто-нибудь может помочь мне разобраться в этом, он будет очень признателен - вся помощь очень ценится.
Я не ставил это в качестве живого сайта, так как сейчас он «в адском развитии», и я хочу как можно больше сделать все правильно.
Что * точно * Ваш вопрос? Как отображать даты по-разному на основе текущей даты или что? –
Это PHP 5.2.8 и 5.3.0. PHP 6 слишком далеко, чтобы вы даже заботились об этом ;-) – phidah
Не могли бы вы поделиться с другими источниками данных ur для руководства по телевизору? Спасибо – Obaid