我想根据最大值和最小值更改一天的日历背景颜色。
/* 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/