【问题标题】:how to default PHP generated date range to the current week如何将 PHP 生成的日期范围默认为当前周
【发布时间】:2013-10-22 04:15:58
【问题描述】:

我有下面的语法,它用周期间填充一个下拉框。范围从 3 个月前到 1 年前。

<select id="period" name="period" onchange="updateperioddiv();"  class="tekwani-input-select"> 

        <?php
          for($i = 0; $i <= 445; $i ++){

            $startdate = strtotime("today + $i day - 90 day");
            $enddate = strtotime("today + " . ($i + 6) . " day - 90 day ");

            if(date('D', $startdate) == 'Mon'){

                echo '<option'.' value="'. date('Y-m-d', $startdate) . ' ">' .date('d M y', $startdate) . " to " . date('d M y', $enddate) . "</option>";
            }
          }
        ?> 
   </select>

所以这默认为 3 个月前,我怎样才能让它默认选择为当前周?

php fiddel here

谢谢,

【问题讨论】:

    标签: php select for-loop


    【解决方案1】:

    strtotime() 返回以数字表示的 Unix 时间戳,因此您可以对这些值进行简单的逻辑比较以确定今天是否在特定的一周内。

    // Get unix time of today
    $today = strtotime("today");
    
    for($i = 0; $i <= 445; $i ++){
    
        $startdate = strtotime("today + $i day - 90 day");
        $enddate = strtotime("today + " . ($i + 6) . " day - 90 day "); 
    
        if(date('D', $startdate) == 'Mon'){
    
            echo '<option ';
            // check to see if today is inside this week
            if( $startdate < $today && $enddate > $today ){
                echo ' selected="selected"';
            }
    
            echo ' value="'. date('Y-m-d', $startdate) . ' ">' .date('d M y', $startdate) . " to " . date('d M y', $enddate) . "</option>";
    
        }
    }
    

    【讨论】:

    • 谢谢威尔,太合乎逻辑了。谢谢:-)
    【解决方案2】:

    你可以这样试试-

    <select id="period" name="period" onchange="updateperioddiv();"  class="tekwani-input-select"> 
    
            <?php
                echo "week".date("Y",$startdate);
              for($i = 0; $i <= 445; $i ++){
    
                $startdate = strtotime("today + $i day - 90 day");
                $enddate = strtotime("today + " . ($i + 6) . " day - 90 day ");
    
                if(date('D', $startdate) == 'Mon'){
                    $selected = "";
                    if(date('W', $startdate) == date('W'))
                       $selected = "selected";
                    echo '<option'.' value="'. date('Y-m-d', $startdate) . ' " $selected>' .date('d M y', $startdate) . " to " . date('d M y', $enddate) . "</option>";
                }
              }
            ?> 
       </select>
    

    【讨论】:

      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 2021-10-20
      • 2020-12-16
      • 2021-03-09
      • 2010-10-07
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      相关资源
      最近更新 更多