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