Guía de TV escrita en PHP: problemas con datetime () y funciones de base de datos

Estoy creando una Guía de TV que enumera los programas que vienen (y en algunos listados, transmisiones anteriores del pasado), con todos los datos almacenados en una base de datos. Se ejecuta en PHP, mi versión es 5.28 (la actualización a 5.30 o 6 pronto).

A continuación se muestra un script que funciona (tenga en cuenta que el campo airdate se almacena como DATETIME en la base de datos):

[Descargo de responsabilidad: el script no es mío, sino uno genérico que descargué y modifiqué para satisfacer mis propias necesidades.]

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

Eso muestra todos los episodios que se avecinan, y si hay alguno para el próximo año, los muestra con el año, como este:

Programa de televisión que se muestra a continuación en Channel1 30 de diciembre de 2009 - 6:00 pm "Episodio 1 - Fotosíntesis" Recordatorio
Programa de televisión que se muestra a continuación en Channel1 6 de enero - 2:45 pm "Episodio 2 - Detrás de la música" Recordatorio del set
Programa de televisión que se muestra a continuación en Channel1 7 de enero - 8:00 pm "Ultimate Car Crimes" Recordatorio de instalación

Sin embargo, lo que me gustaría que hiciera es eliminar ciertos registros después de que haya transcurrido un período de tiempo (pero eso tendría que establecerse en algún lugar del script, ya que las longitudes de los programas varían) en lugar de que yo los elimine manualmente de la base de datos. Algunos programas duran 30 minutos, otros 60 minutos ... las duraciones varían, básicamente.

Lo que me gustaría que hiciera es esto (observe que la primera lista no muestra la fecha como es la fecha actual):

Programa de televisión que se muestra a continuación en Channel1 6:00 pm "CCTV Cities - Wigan" Recordatorio de instalación
Programa de televisión que se muestra a continuación en Channel1 9 de enero - 2:45 pm "Imperio Romano - Una historia de su gente" Recordatorio
Programa de televisión que se muestra a continuación en Channel1 10 de enero - 8:00 pm "Recordemos los peores momentos de Celebrity 100"

pero no sé cómo configurarlo para hacer esto con PHP o la función date (). Funciona bien con las fechas, y mostrándolas. No tengo acceso a los trabajos cron porque se trata de una instalación local de Apache en Windows Vista Home Edition.

Si alguien pudiera ayudarme a resolver esto, sería muy apreciado, toda la ayuda es muy apreciada.

No he puesto esto como un sitio en vivo, ya que está "en el infierno del desarrollo" en este momento, y quiero hacer las cosas lo mejor posible.

Respuestas a la pregunta(3)

Su respuesta a la pregunta