带有过期日期的新日历的PHP日历
问题描述:
我为客户创建了一个日历/日程安排,由于我是一名前端开发人员,并且使用php完成了新的工作,所以它有点粗糙。带有过期日期的新日历的PHP日历
这是我得到:http://www.nrg-agency.com/events/
的脚本是真正的基础,而这是第一次上最远日期排序,这是我搞到现在,即将举行的日期是在顶部整理工作。
我的问题是,我怎么能创建过去的事件会自动进入一个新的分区下的时间表与“过去的事件”?
这是我在我的 “的functions.php” 文件有:
<?php
function init_db(){
global $db;
$sql = "SHOW TABLES FROM $db[db]";
$result = mysql_query($sql);
$buildNow = 'yes';
while($row = mysql_fetch_row($result)){
if($row[0] == 'joe_cal_events'){
$buildNow = 'no';
}
}
if($buildNow == 'yes'){
mysql_query("
CREATE TABLE `joe_cal_events` (
`id` mediumint(8) NOT NULL auto_increment,
`start` date NOT NULL default '2014-30-04',
`end` date NOT NULL default '2020-01-01',
`title` text NOT NULL,
`url` text NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
") or die(mysql_error());
}
}
foreach ($dataArray as $key => $row) {
$orderByDate[$key] = strtotime($row['start']);
}
array_multisort($orderByDate, SORT_ASC, $dataArray);
array_multisort($orderByDate, SORT_ASC, $dataArray);
function prettyDate($date,$type){
list($y,$m,$d) = explode("-", $date);
if($type == 1){
return "$m/$d/$y";
}
if($type == 2){
return(date("j F Y",mktime(0,0,0,$m,$d,$y)));
}
}
?>
这在我events.php:
<body>
";
$q = mysql_query("select * from joe_cal_events order by start asc");
while($r = mysql_fetch_array($q)){
print "
<div class='feedEkList'><li>
<div class='itemTitle'>$r[title]</div>
<div class='itemdate'>".prettyDate($r[start],2)."</div>
";
if($r[description]){
print "<div class='itemText'>$r[description]</div>";
}
print "
</li>
</div>
";
}
print "
</div>
</body>
再次感谢!
答
循环访问您的阵列。
$pastevents = array();
$futureevents = array();
foreach($events as $event) {
if(strtotime($event['date']) < time()) {
$pastevents[] = $event;
} else {
$futureevents[] = $event;
}
现在你有两个数组,一个包含你的过去,一个包含你未来的事件。
在你的情况下更换:
while($r = mysql_fetch_array($q)){
有:
$pastevents = array();
$futureevents = array();
while($r = mysql_fetch_array($q)){
if(strtotime($r['date']) < time()) {
$pastevents[] = $r;
} else {
$futureevents[] = $r;
}
}
foreach($futureevents as $event) {
// your display logic
}
foreach($pastevents as $event) {
// your display logic
}
感谢您的快速答复!但正如我所说,我是全新的PHP。 你能看看我的代码吗?如何将这个添加到HTML? – MBouwman
@MBouwman我已更新我的回复。我使用完整的单词,如$ event而不是$ r,因为它更具可读性。当另一位程序员看到代码时,他会更容易理解。 –