2012-11-16 38 views
1

香港專業教育學院創建了一個下拉選擇列表,其基於當前日期日期列表,構建選擇列表

4天背部和7天前,我已經嘗試了幾種短劇本,但他們都失敗,我一直在使用以下,但它有一些限制......謝謝!

<option value=""> select </option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-4),date("Y")));?>" style="color:red;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-4),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-3),date("Y")));?>" style="color:red;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-3),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-2),date("Y")));?>" style="color:red;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-2),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-1),date("Y")));?>" style="color:red;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-1),date("Y")));?></option> 
<option value="<?php echo date ('m/d/Y');?>"><?php echo date ('m/d/Y');?> TODAY </option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+1),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+1),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+2),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+2),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+3),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+3),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+4),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+4),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+5),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+5),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+6),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+6),date("Y")));?></option> 
<option value="<?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+7),date("Y")));?>" style="color:green;font-weight:bold;"><?php echo date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")+7),date("Y")));?></option> 
+0

你可以縮小你的代碼示例到相關部分(也許使用省略號來表示重複)?此外,這有什麼限制? –

+0

你找到了什麼限制?你真的沒有在這裏問過一個問題... – EmmyS

+0

請原諒我的簡潔,這是相當繁瑣的,我試圖比較它在數據庫中的價值,此外,我必須把它放到非常小的形式如果我搞砸了,只是需要輸入很多重複的代碼,而且我一直試圖嘗試一些我發現的例子,但是一直出錯 – Ichimonban

回答

0

這應該足夠了:

echo '<select><option> select </option>'; 

for($x=-4;$x<=7;$x++){ 
    $date = date("m/d/Y",(time() + (86400 * $x))); 
    if($x<0){ 
     $color='red'; 
    }elseif($x==0){ 
     $color = 'black;font-weight:bold'; 
    }else{ 
     $color = 'green'; 
    } 
    echo '<option style="color:'.$color.'" value="'.$date.'">'.($x==0 ? 'TODAY':$date).'</option>'; 
} 

echo '</select>'; 
0

,你應該做的事情是創建你的計算功能, 這樣就可以在代碼中使用mydate(+1)mydate(-2)而不是spaggheti的。

不要混合(和重複)這麼多PHP代碼在你的HTML,這是非常糟糕的做法,很難維護。

,你的函數裏面,你可以把你的時間unix時間戳適當的功能,加上毫秒的數量,並把它返回到你需要的任何時間格式。

0

你嘗試

<?php 
    for($i = -4; $i <= 7; $i++) { 
     $date = date ("m/d/Y", mktime (0,0,0,date("m"),(date("d")-$i),date("Y"))); 

     $date_txt = $date; 

     if($i == 0) { 
      $date_txt = "Today"; 
     } 

     printf("<option value=\"%s\" style=\"color: red\">%s</option>", $date, $date_txt); 
    } 
?> 
2

這應該做什麼你問。我已經重寫了您的代碼,使其儘可能簡單易讀。

<?php 
echo '<select>'; 
echo '<option value="">select</option>'; 

for($i = -4; $i <= 7; ++$i) 
{ 
    $date = date('m/d/Y', strtotime($i.' days')); 
    echo '<option value="'.$date.'" style="color:red;">'.$date.'</option>'; 
} 

echo '</select>'; 
?> 
+0

如果我的答案幫助了你,請考慮接受它作爲「最好的回答「你的問題。 –