FullCalendar:通过比较日期更改事件颜色

FullCalendar: Changing event colors with comparing dates

最近,我开始用尽 arshaw 的完整日历。在开发过程中,我在网站上搜索解决方案,让事件颜色根据事件日期和当前日期发生变化。此代码用 HTML 和 PHP 与 Javascript.

编写

这是基于我所取得的成果对我自己的问题帖子的回答,因为没有类似的问题可以解决这个问题。

下面是我的回答以及 FullCalendar 的样子。

澄清一下,我使用 odbc 和 Microsoft Access 作为数据库。

我的做法如下:

全日历脚本中的事件

  events: [
        <?php 
            include 'connect.php'; //connect to database

      function getColor($date) {
        $currentDate = date('Y-m-d');
        $oneweekDate = date('Y-m-d',strtotime('-1 week')); // this part is to compare with the date 1 week ago
        $eventColor = '';
        if ($date == $currentDate) {
            $eventColor = '#fb8c00';
        } else if($date > $oneweekDate && $date < $currentDate){
            $eventColor = '#ff0000';
        } else if($date < $oneweekDate){
            $eventColor = '#696969';
        } else {
            $eventColor = '#008000';
        }
        return $eventColor;
    }

    $sql="SELECT * FROM masterlist1";
    $result=odbc_exec($conn,$sql);
        while($row=odbc_fetch_array($result)){
            $newEnd = date("Y-m-d", strtotime($row['Calibration_Due_Date']));
            $color = getColor($newEnd); //store the date from database into a PHP variable and then call the PHP function getColor to get return result
        ?>
       {  
        title: '--title--',  <!--u may get info from fullcalendar.io on the documentations for these parts-->
        start: '--start date--', 
        end: '--end date--', 
        description : '--description--',
        color : '<?php echo $color?>' <!-- this part is where we get the return result from the getColor function and store it into $color variable and then echo it out here for the event color.-->
      }, 
      <?php } ?>
      ],