将日历功能扩展为接受年限

时间:2015-04-01 13:37:55

标签: php date calendar

我正在使用事件调度程序网站,因为我正在使用月份表(id& month作为标题)来对我进行分组按月结果。因此,如果我尝试安排2016年1月的活动,它会成功地将其纳入我选择的月份,但可以理解的是将其纳入2015年。 我希望能够在今年年底之前获得一些帮助,并在不同年份增加功能。

我很乐意使用另一种方法,而不是使用我当前的表格设置,所以任何提示或建议都将不胜感激。

目前的代码如下:

<?php include 'includes/connect.php';
include 'includes/header.php';
$curMonth = date("n"); ?>

<b>Upcoming Trip Information:</b><br><br>
<?php 
$res = mysql_query("SELECT * FROM months ORDER BY id");
while ($rows = mysql_fetch_array($res)) {
if($rows['id'] >= $curMonth ){

$monthname = $rows['month']; ?>
<table cellpadding="0" cellspacing="3" width="100%"> 
<tr> 
<td>
<?php 
$tid = $_GET['transporter'];
$check = mysql_query("SELECT * FROM trips WHERE monthname(start_date) = '" . $rows['month'] . "' AND tid = '$tid'");
$check = mysql_num_rows($check);
if ($check < 1) {
echo "";
} else { ?> <h2><?php echo $monthname; ?><?php } ?></h2></td></tr> <tr> <?php $cmonth = date('F');
$tid = $_GET['transporter'];
$res1 = mysql_query("SELECT * FROM trips WHERE monthname(start_date) = '$monthname' ORDER BY start_date");
while ($rows = mysql_fetch_array($res1)) {
$trid = $rows['trid'];
$trip_start = $rows['trip_start'];
$trip_end = $rows['trip_end'];
$start_date = $rows['start_date'];
$end_date = $rows['end_date'];
$colour = $rows['colour'];
$stime = strtotime($start_date);
$startt = date("l jS", $stime);
$etime = strtotime($end_date);
$endt = date("l jS", $etime); ?> 
<td valign="middle" style="height: 100px; background-color: #4b99ed; text-align: center;"> 
<div style="font-size: 17px; color: #ffffff;"><?php echo $trip_start; ?> to <?php echo $trip_end; ?></div> 
<div style="font-size: 15px; color: #ffffff;"><?php echo $startt; ?> - <?php echo $endt; ?></div> 

</td> 
<?php } } } ?> 
</tr> 
</table> <?php include 'includes/footer.php'; ?>

如果可能,我想保持结果布局..

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试使用months表的start_date列,而不是使用trips表。

尝试更改您的查询:

SELECT trips.*, DATE_FORMAT('%M, %Y', start_date) as `dt` 
FROM trips  
WHERE tid = '$tid' /* This is bad, please prepare or escape your variables*/ 
ORDER BY `dt` ASC

然后,您不必进行第一次查询以获取所有月份并循环遍历它们。如果每个月必须有空容器,请尝试使用该查询,但循环执行PHP生成的数月数组。