【问题标题】:Listing Dates In Order (Options Drop-Down)按顺序列出日期(选项下拉菜单)
【发布时间】:2013-12-24 20:03:45
【问题描述】:

我想生成一个表单,它有一个下拉选项框,其中包含按顺序和格式排列的日期,但我不知道如何将它们显示为字符串。

我假设您需要做这种事情来获得开始和结束,但我怎样才能获得每个“选项”的日期?

    <?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)));
}
?>

【问题讨论】:

    标签: php


    【解决方案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; 
    

    【讨论】:

    • 这正是我想要的 - 谢谢
    【解决方案2】:

    我只想添加到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>
    

    【讨论】:

      【解决方案3】:

      使用基本的 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

      【讨论】:

      • 谢谢,但这显示了一个持续循环 - 我已经更新了我的代码
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-31
        • 2013-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-26
        相关资源
        最近更新 更多