我正在创建一个电视指南,其中列出了将要发布的节目(以及某些列表,以前的播出),并将所有数据存储在数据库中。它运行在PHP中,我的版本是5.28(很快升级到5.30或6)。用PHP编写的电视指南 - 有datetime()和数据库功能的问题
下面是(注意现场广播日被存储为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 2009年12月30日 - 下午6:00“第1集 - 光合作用”设置提醒 下一显示在通道1 1月6日
电视节目 - 2:45 PM“第2集 - 音乐背后”设置提醒
下一个显示在通道1 1月7日的电视节目 - 下午8:00“终极汽车罪”设置提醒
不过,我想它做的是在一段时间后删除某些记录已过期(但是这将有要在脚本中的某处设置,因为程序长度会有所不同),而不是手动从数据库中删除它们。有些节目长30分钟,其他节目长60分钟,基本上不同。
我想什么它做的是这个(通知,首批上市不显示的日期,因为它是当前日期。):未来
电视节目显示在通道1下午6:00“CCTV城市 - 威根“设置提醒
电视节目下一显示在通道1 1月9日 - 下午2:45‘罗马帝国 - 它的人民的历史’设置提醒
下一个显示在通道1 1月10日 电视节目 - 下午8:00”百大名人榜最差时刻“设置提醒
但我不知道如何配置它与PHP或date()函数做到这一点。它与日期一起工作良好,并显示它们。 我无权访问cron作业,因为它位于Windows Vista Home Edition上的本地主机Apache安装上。
如果有人可以帮我弄清楚这将是非常感谢 - 所有的帮助,非常感谢。
我没有把它当做一个活的网站,因为它现在正处于“发展中的地狱”,我想尽可能地把事情做好。
什么* *究竟是你的问题?如何根据当前日期或什么显示不同的日期? – 2010-01-08 23:17:38
这是PHP 5.2.8和5.3.0。 PHP 6离你太远,甚至不在乎;-) – phidah 2010-01-08 23:25:44
你介意分享你的电视指南的数据源吗? 谢谢 – Obaid 2010-05-29 23:56:03