如何将 PHP 生成的日期范围默认为当前周


how to default PHP generated date range to the current week

我有以下语法,它用周周期填充一个下拉框。 它的范围从 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小提琴在这里

谢谢

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>";
    }
}

你可以这样尝试-

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