php - 根据最大和最小数字改变颜色

标签 php html css

我想根据最大值和最小值更改一天的日历背景颜色。

/* keep going with days.... */
for($list_day = 1; $list_day <= $days_in_month; $list_day++):
    $check_day = checkDay($list_day, date("Y"), date("m"));
    $red_start = $per_day_chu - 1;
    $red_finish = $per_day_chu;
    $yellow_start = $per_day_chu - 2;
    $yellow_finish = $red_start;
    $green_start = 0;
    $green_finish = $yellow_start;

    if($check_day > $red_start or $check_day == $red_start or $check_day >= $red_finish)
        $calendar.= '<td class="calendar-day" style="background:#F00">';
    else if($check_day > $yellow_start or $check_day == $yellow_start or $check_day >= $yellow_finish)
        $calendar.= '<td class="calendar-day" style="background:#FFED00">';
    else if($check_day > $green_start or $check_day == $green_start or $check_day <= $green_finish)
        $calendar.= '<td class="calendar-day" style="background:#518F00">';
    else
        $calendar.= '<td class="calendar-day">';

    /* add in the day number */
    if($currentDayOfMonth == $list_day) {
        $calendar.= '<div class="day-number"><font color="#F00">'.$list_day.'</font></div>';
    }
    else {
        $calendar.= '<div class="day-number">'.$list_day.'</div>';
    }

    /** QUERY THE DATABASE FOR AN ENTRY FOR THIS DAY !!  IF MATCHES FOUND, PRINT THEM !! **/
    $calendar.= str_repeat('<p>'.$check_day.'</p>',1);

    $calendar.= '</td>';
    if($running_day == 6):
        $calendar.= '</tr>';
    if(($day_counter+1) != $days_in_month):
        $calendar.= '<tr class="calendar-row">';
    endif;
    $running_day = -1;
    $days_in_this_week = 0;
    endif;
    $days_in_this_week++; $running_day++; $day_counter++;
endfor;

在上面的代码中,我尝试显示 3 种颜色(红色、黄色和绿色)。

我会详细解释我的概念。

//示例1

如果 $per_day_chu = 10$check_day = 0 到 6 那么当天的背景颜色应该是 green 如果 $check_day = 7 或 8 那么颜色应该是黄色 如果 $check_day = 9 或 10 颜色应该是红色.

//例子2

如果 $per_day_chu = 8$check_day = 0 到 4 那么当天的背景颜色应该是 green 如果 $check_day = 5 或 6 那么颜色应该是黄色 如果 $check_day = 7 或 8 颜色应该是红色.

#per_day_chu$check_day 值会动态变化。不是一个常数值。

我试过使用上面的代码。但是颜色显示不正确。任何人都请帮助我。谢谢。

最佳答案

下面的代码成功了:

<?php

$per_day_chu = 8;

for($i=0; $i <= $per_day_chu; $i++){

    $first_color_count = $per_day_chu - 4; // set first color
    $second_color_count = $per_day_chu - 2;

    if($i <= $first_color_count)
        $color = 'green';
    else if($i <= $second_color_count)
        $color = 'yellow';
    else
        $color = 'red';

    echo 'Count: '.$i.' Color: '.$color.'<br>';

}



?>

更新代码:

您可以使用 $check_day 代替 $i

 $first_color_count = $per_day_chu - 4; // set first color
    $second_color_count = $per_day_chu - 2;

    if($check_day <= $first_color_count)
        $color = 'green';
    else if($check_day <= $second_color_count)
        $color = 'yellow';
    else
        $color = 'red';

关于php - 根据最大和最小数字改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42689225/

相关文章:

javascript - 如何检测浏览器是否支持视口(viewport)单位,如 vh 或 dvh?

javascript - 从服务器 json Angular 加载数据

php - 如何将不同文件的代码合并为一个文件代码

html - <ul> 位置没有像我希望的那样工作

html - 如何检查get或post方法是否被调用

html - 如何在 Bootstrap 轮播中调整 img 的大小?

php - 命名空间和全局类的使用

javascript - 重复显示数据

javascript - HTML5 Canvas 改变图像颜色

html - h1标题断成第二行时如何添加填充