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

4 に答える 4

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>';
?>
于 2012-11-16T22:01:41.433 に答える
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>';
于 2012-11-16T21:59:11.393 に答える
0

あなたがすべきことは、計算用の関数を作成して、そのスパゲティの代わりにコードで ,mydate(+1)を使用できるようにすることです。mydate(-2)

html に大量の php コードを混在 (および繰り返し) しないでください。これは非常に悪い習慣であり、保守が困難です。

次に、関数内で、適切な関数を使用して時間をUNIX タイムスタンプに変換し、ミリ秒数を追加して、必要な時間形式に戻すことができます。

于 2012-11-16T21:59:30.667 に答える
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);
    }
?>
于 2012-11-16T22:00:54.853 に答える