按顺序列出日期(选项下拉列表)

时间:2013-12-24 20:03:45

标签: php

我想制作一个包含下拉选项框的表单,该框包含按顺序和格式的日期,但我不知道如何将它们显示为字符串。

我认为你需要做这样的事情来获得开始和结束,但我怎样才能得到每个“选项”的日期?

    <?php
date_default_timezone_set('UTC');
$start = date('Ymd');
$end = date('Ymd', strtotime('+60 days'));

while (strtotime($start) <= strtotime($end)) {
    echo "$start\n";
    $date = date ("Ymd", strtotime("+1 day", strtotime($start)));
}
?>

4 个答案:

答案 0 :(得分:1)

$dates = array();
$dates[] = time();

for ($i = 1; $i < 60; $i++) { $dates[] = strtotime("+{$i} days"); }


$html = NULL;

foreach ($dates as $date) { $dates .= "<option value='" . date('Ymd', $date) . "'>" . date('d F Y', $date) . "</option>"; }

$html = "<select id='dates'>{$dates}</select>";

echo $html; 

答案 1 :(得分:1)

我只想添加Publi Design的答案,使答案更具体针对这个问题。

PHP由 Publi Design 提供:     

// Start date
$date = '2009-12-06';
// End date
$end_date = '2020-12-31';
?>
<select id="dates">
<?php while (strtotime($date) <= strtotime($end_date)) { ?>
   <option name="date"><?php echo (string)$date; ?></option> 
<?php   $date = date ("Y-m-d", strtotime("+1 day", strtotime($date))); 
   }?>
</select>

答案 2 :(得分:0)

使用基本的PHP while循环:

// Set timezone
date_default_timezone_set('UTC');

// Start date
$date = '2009-12-06';
// End date
$end_date = '2020-12-31';

while (strtotime($date) <= strtotime($end_date)) {
    echo "$date\n";
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}

原始来源:here

答案 3 :(得分:0)

这可能就是你要找的......

<select id="dates">
<option></option>
<?php
   $curr_date = date('YYMMDD');

   for ($i = 0; $i < 60; $i++) {
       $date = strtotime("+$i day", $curr_date);
       echo '<option name="date" value="'.$date.'">'.date('DD m YY', strtotime($date)).'</option>'."\n";
   }
?>
</select>