2017-03-09 83 views
0

我想根據最大和最小值更改日曆的背景顏色。根據最大和最小值更改顏色

/* 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 to 6然後當天的背景顏色應該是​​並且如果$check_day = 7 or 8那麼顏色應該是yellow,如果$check_day = 9 or 10的顏色應red

//例2

$per_day_chu = 8如果並$check_day = 0 to 4然後當天的背景顏色應該是​​並且如果$check_day = 5 or 6那麼顏色應該是yellow,如果$check_day = 7 or 8的顏色應red

#per_day_chu$check_day值會動態變化。不是一個常數值。

我已經嘗試使用上面的代碼。但顏色顯示不正確。任何人都請幫助我。謝謝。下面

+0

什麼顏色的實際需求? –

+0

@快樂編碼:看我的問題中的例子。 –

回答

1

代碼的伎倆:

<?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

$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'; 
+0

請勿使用循環。該代碼已經有一個for循環顯示一個月中的所有日子。 –