0

完全に機能するカレンダーを作成しましたが、複数日にまたがるイベントを挿入できるようにする必要があります。カレンダーには 1 日の午前と午後のイベントが表示されますが、複数の日にイベントを入力すると、イベントはイベントの開始日と終了日の間の日に表示されます。開始時間と終了時間にタイムスタンプを使用しています。これが私の現在のSQLです:

$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')";

午後の別のクエリがあります。私が言ったように、開始日と終了日のイベントを表示する以外は問題なく動作しますが、その間の日に表示されます。

ありがとう

4

1 に答える 1

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'";              
于 2012-04-30T10:05:10.967 に答える