2012-04-30 117 views
0

我已经创建了一个完美的日历,但是我需要能够插入运行多天的事件。日历会显示单日AM和PM的事件,但在多天内输入事件时,事件将显示事件开始和结束日期之间的日期。我在开始和结束时间使用时间戳。这是我当前的SQL:PHP日历多天活动

$day_start = mktime(0, 0, 0, $cMonth, ($i - $startday + 1), $cYear); 
$day_morning_end = mktime(11, 59, 59, $cMonth, ($i - $startday + 1), $cYear); 
$day_afternoon_start = mktime(12, 0, 0, $cMonth, ($i - $startday + 1), $cYear); 
$day_end = mktime(23, 59, 59, $cMonth, ($i - $startday + 1), $cYear); 

$morn_sql = "SELECT * FROM tbl_events WHERE (start_stamp>='$day_start' AND end_stamp<='$day_morning_end') OR (start_stamp<'$day_start' AND end_stamp>'$day_end')"; 

下午还有另一个查询。正如我所说,除了在他们开始和结束的那一天显示事件之外,它可以正常工作,但它会在两天之间显示。

谢谢

回答

0

这没有测试因为我没有表/数据,但我希望这会有所帮助。 :)

$day_sql = "SELECT * FROM tbl_events 
     WHERE start_stamp BETWEEN '$day_start' AND '$day_end' 
      AND end_stamp BETWEEN '$day_start' AND '$day_morning_end' 
       OR end_stamp BETWEEN '$day_afternoon_start' AND '$day_end'";