Przewodnik telewizyjny napisany w PHP - problemy z datetime () i funkcjami bazy danych

Tworzę przewodnik telewizyjny, który zawiera listę nadchodzących programów (i niektórych aukcji, poprzednich emisji z przeszłości), ze wszystkimi danymi przechowywanymi w bazie danych. Działa w PHP, moja wersja to 5.28 (aktualizacja do 5.30 lub 6 wkrótce).

Poniżej znajduje się skrypt, który działa (uwaga: pole danych jest przechowywane w bazie danych jako DATETIME):

[Zastrzeżenie: Skrypt nie jest mój, ale generyczny, który pobrałem i zmodyfikowałem tak, aby odpowiadał moim potrzebom.]

<? //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>";
}
?>

Wyświetla wszystkie nadchodzące odcinki, a jeśli nadchodzi następny rok, wyświetla je wraz z rokiem, w ten sposób:

Program telewizyjny pokazywany obok w Channel1 30 grudnia 2009 - 18:00 „Episode 1 - Photosynthesis” Set Reminder
Program telewizyjny pokazujący następny w Channel1 6 stycznia - 14:45 „Episode 2 - Behind the Music” Ustaw przypomnienie
Program telewizyjny pokazujący następny w Channel1 7 stycznia - 20:00 „Ultimate Car Crimes” Ustaw przypomnienie

Jednak to, co chciałbym zrobić, to usunąć niektóre rekordy po upływie określonego czasu (ale to musiałoby być ustawione gdzieś w skrypcie, ponieważ długość programu się zmienia), a nie ręcznie usuwam je z bazy danych. Niektóre programy mają 30 minut, inne 60 minut ... różnią się zasadniczo.

Chciałbym to zrobić (zauważ, że pierwsza pozycja nie pokazuje daty, ponieważ jest to bieżąca data.):

Program telewizyjny pokazujący następny na kanale 1 18:00 „Miasta CCTV - Wigan” Ustaw przypomnienie
Program telewizyjny pokazujący się na kanale 1 9 stycznia - 14:45 „Imperium Rzymskie - historia jego ludu” Ustaw przypomnienie
Program telewizyjny pokazywany w programie Channel1 10 stycznia - 20:00 „Celebrity 100 Worst Moments” Ustaw przypomnienie

ale nie wiem, jak go skonfigurować, aby zrobić to za pomocą PHP lub funkcji date (). Działa dobrze z datami i pokazuje je. Nie mam dostępu do zadań cron, ponieważ jest to instalacja localhost Apache w systemie Windows Vista Home Edition.

Gdyby ktoś pomógł mi to zrozumieć, byłoby to bardzo mile widziane - cała pomoc jest bardzo doceniana.

Nie umieściłem tego jako strony na żywo, ponieważ teraz jest „w piekle programistycznym” i chcę, aby wszystko było jak najlepiej.

questionAnswers(3)

yourAnswerToTheQuestion