簡體   English   中英

如何將事件放入每周日歷

[英]How to put events in a weekly calendar

嗨,我正在用php制作每周日歷,我想像下面的示例一樣在日歷中放置事件,但是我不知道如何在一天的正確時間回顯日歷中的事件。

這是我用來回顯日歷的代碼:

   <?php
                $dt = new DateTime;

                if (isset($_GET['year']) && isset($_GET['week'])) {
                    $dt->setISODate($_GET['year'], $_GET['week']);
                }else{
                    $dt->setISODate($dt->format('o'), $dt->format('W'));
                }

                $year = $dt->format('o');
                $week = $dt->format('W');
              ?>


            <a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Vorige week</a>
            <a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Volgende week</a>

            <?php
              $getDatum = $conn->prepare("
                SELECT DISTINCT D.DocentID, CONCAT(D.Voornaam, ' ', D.Achternaam) AS Docentnaam, D.Telefoonnummer, D.Mobiel, D.Email, CO.DatumBegin, CO.DatumEind, O.Onderdeelnaam

                FROM docenten D

                INNER JOIN psentity PE ON D.DocentID = PE.psid
                INNER JOIN docentonderdelen DO ON D.DocentID = DO.DocentID
                INNER JOIN cursusonderdelen CO ON DO.OnderdeelID = CO.OnderdeelID
                RIGHT JOIN onderdelen O ON CO.OnderdeelID = O.OnderdeelID

                WHERE O.OnderdeelID = 6
                AND CO.DatumBegin AND CO.DatumEind BETWEEN '2018-12-10' AND '2019-10-10'
                AND PE.deleted = 0
                LIMIT 3");

              $getDatum->bindParam(':OID', $OID, PDO::PARAM_STR);
              $getDatum->bindParam(':BeginDatum', $BeginDatum, PDO::PARAM_STR);  
              $getDatum->bindParam(':Einddatum', $Einddatum, PDO::PARAM_STR);

              $getDatum->execute();

              $docenten = array();

              while ($row = $getDatum->fetch(PDO::FETCH_ASSOC))
              {
                  $docenten[] = $row;
              }

Pastebin鏈接到代碼,因為否則代碼會很長。 我希望我提供的信息足夠。

您可以將事件的時間存儲在DatumBegin或新列中(假設eventTime的格式為(H:i:s) ),然后根據時間創建三個數組,然后在不同的tr對其進行迭代

$morningTime = date("00:00:00");
$afternoonTime = date("12:00:00");
$eveningTime = date("17:00:00");

$morningEvents = [];
$afternoonEvents = [];
$eveningEvents = [];

while ($row = $getDatum->fetch(PDO::FETCH_ASSOC))
{
    $dyDate = date($row['eventTime']);
    if($dyDate<$afternoonTime){       // store "Morning Event";
        $morningEvents[] = $row;
    }

    if($dyDate>=$afternoonTime && $dyDate<$eveningTime){    // store "Afternoon Event";
        $afternoonEvents[] = $row;
    }

    if($dyDate>=$eveningTime){  // store "Evening Event";
        $eveningEvents[] = $row;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM