PHP日期下拉列表
下面是一个旧的PHP函数,我有一个下拉列表供用户选择生日,这只是其中的日期部分,您可以看到它使用stru_pad将0添加到数字1-9中,有更好的方法吗PHP日期下拉列表,php,Php,下面是一个旧的PHP函数,我有一个下拉列表供用户选择生日,这只是其中的日期部分,您可以看到它使用stru_pad将0添加到数字1-9中,有更好的方法吗 <?PHP $date_combo .= '<select name="' . $pre . 'day" class="' .$style. '">'; $date_combo .= "<option value=''>Day</option>"; for ($i = 1; $i <= 31; $i
<?PHP
$date_combo .= '<select name="' . $pre . 'day" class="' .$style. '">';
$date_combo .= "<option value=''>Day</option>";
for ($i = 1; $i <= 31; $i++) {
$date_combo .= " <option ";
if ($i == $selected_date_day) {
$date_combo .= " selected ";
}
$date_combo .= " value='" . str_pad($i, 2, "0", STR_PAD_LEFT) . "'>" . str_pad($i, 2, "0", STR_PAD_LEFT) . "</option>";
}
$date_combo .= "</select> ";
echo $date_combo;
?>
您可以创建一个接受数组的通用函数,以构建select
function formSelect($name, array $options, $selected)
{
$output = '<select name="' . $name . '">';
foreach($options as $key => $value)
{
$output .= '<option value="' . $key . '"';
if($selected == $key) {
$output .= ' selected="selected"';
}
$output .= '>' . $value . '</option>';
}
$output .= '</select>';
return $output;
}
stru-pad
的替代方法是使用sprintf
守则:
str_pad($i, 2, "0", STR_PAD_LEFT)
变成:
sprintf("%02d", $i)
它将把$i
打印为2个字符宽的整数,并用零填充。
请参阅文档
sprintf("%02d", $i)