表單常需年份選擇(生日、卡片效期、統計篩選)。利用 `range()` + `date()` + `strtotime()` 可動態生成從今年往前 100 年的選單,無需手動維護。
<select name="year">
<?php
// 今年往前 100 年(含今年),遞減排序
$years = range(date("Y"), date("Y", strtotime("now - 100 years")));
foreach ($years as $year) {
echo '<option value="' . $year . '">' . $year . '</option>';
}
?>
</select>
$years = range(date("Y", strtotime("now - 100 years")), date("Y"));
$default = 1990; // 或從資料庫讀取
foreach ($years as $year) {
$sel = ($year == $default) ? ' selected' : '';
echo "<option value=\"$year\"$sel>$year</option>";
}
$adult_year = date("Y") - 18;
$years = range($adult_year, date("Y", strtotime("now - 100 years")));
年份選單生成後,前端 JS 可根據年份、月份動態調整日期選項天數(處理閏年、大小月)。
年份選單極少變動,建議:
此技巧同樣適用於月份(1-12)、日期(1-31)、小時(0-23)等固定範圍選單生成。