2011-10-28 10 views
0

iは、表に記載されているいくつかの日のリストを持っているので、私のデータベースの結果は次のように来る:セットデータ範囲のphp

$day = $res->fields['DAY']; 

$month = $res->fields['MONTH']; 

$year = $res->fields['YEAR']; 

と私は有効な日付を形成するために一緒にすべての彼らを置く

// put together the date 
$date = $res->fields['DAY']."/".$res->fields['MONTH']."/".$res->fields['YEAR'];  

// get the present day 
$today = date('d/m/Y'); // 28/10/2011 

と私がチェック:

if($date == $today){ 
    $backGroundTr = "red"; 
} 

<tr>背景赤を設定します。

HTMLは次のようなものです:

<tr bgcolor="green"> 
    <td>31/10/2011</td> 
</tr> 
<tr bgcolor="green"> 
    <td>30/10/2011</td> 
</tr> 
<tr bgcolor="green"> 
    <td>29/10/2011</td> 
</tr> 
<tr bgcolor="red"> // this reciave the red bgcolor because is today 
    <td>28/10/2011</td> 
</tr> 

、私は何をしようとしていることである:私は次の3日間に他の色を設定することができます

か?私が例で見ることができるように、私は緑色を置く。 (私はあなたをごループを前提としています

は私がはっきりしていた場合は、任意の質問は、これはトリック

if($date == date('d/m/Y',strtotime('+1 day')) || 
    $date == date('d/m/Y',strtotime('+2 day')) || 
    $date == date('d/m/Y',strtotime('+3 day'))){ 
    $backGroundTr = "green"; 
} 

またはあなたがそのような何かを行うことができますを行う必要があり、私のゲスト

+0

多くの質問が発生します。どのように他の日付を取得しますか?ループの中でそれらを生成しますか?なぜ最初の日付が31で、次のものが子孫の順番でorderesですか? –

+0

はい、私の結果は 'while()'の中にあり、htmlは例です.28はbgcolorの赤です。例えば –

答えて

1

てください知りません日)(日は逆の順序で印刷されているように、このソリューションが動作しません)

$green=0; 
while (...){ 
    ... 
    if($date == $today){ 
    $backGroundTr = "red"; 
    $green=3; 
    } 
    if ($green>0) 
    { 
    $backGroundTr = "green"; 
    $green--; 
    } 
    ... 
} 

またはあなたがそのような何かを行うことができます:

if(strtotime($date) > strtotime($today) && 
    strtotime($date) <= strtotime('+3 days',$today) 
{ 
    $backGroundTr = "green"; 
} 
+0

のように緑の色を次の5日間に設定する必要があります。 –

+0

あなたの最初のオプションはうまく動作し、テストを行い、ここで結果を返します。 –

+0

基本的に "赤"の日に出会うと、変数$ greenを3に設定します。ループするたびに、$ greenが0より大きいかどうかをチェックします。この場合、背景を緑に設定し、$ greenを1減らします。この方法では、赤の1日後に背景を緑色に設定します – Ivan