带有过期日期的新日历的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 
} 
+0

感谢您的快速答复!但正如我所说,我是全新的PHP。 你能看看我的代码吗?如何将这个添加到HTML? – MBouwman

+0

@MBouwman我已更新我的回复。我使用完整的单词,如$ event而不是$ r,因为它更具可读性。当另一位程序员看到代码时,他会更容易理解。 –