如果我将生日存储为1990-01-01
当用户编辑他的个人资料时,如何显示他当前的生日?
<select name="ctl00$ctl00$cphContent$cphContent$cphContentLeft$DatePicker1$days" id="ctl00_ctl00_cphContent_cphContent_cphContentLeft_DatePicker1_days">
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="ctl00$ctl00$cphContent$cphContent$cphContentLeft$DatePicker1$months" id="ctl00_ctl00_cphContent_cphContent_cphContentLeft_DatePicker1_months" style="width:100px;">
<option selected="selected" value="1">januar</option>
<option value="2">februar</option>
<option value="3">marts</option>
<option value="4">april</option>
<option value="5">maj</option>
<option value="6">juni</option>
<option value="7">juli</option>
<option value="8">august</option>
<option value="9">september</option>
<option value="10">oktober</option>
<option value="11">november</option>
<option value="12">december</option>
</select>
<select name="ctl00$ctl00$cphContent$cphContent$cphContentLeft$DatePicker1$years" id="ctl00_ctl00_cphContent_cphContent_cphContentLeft_DatePicker1_years">
<option selected="selected" value="1950">1950</option>
<option value="1951">1951</option>
<option value="1952">1952</option>
<option value="1953">1953</option>
<option value="1954">1954</option>
<option value="1955">1955</option>
<option value="1956">1956</option>
<option value="1957">1957</option>
<option value="1958">1958</option>
<option value="1959">1959</option>
<option value="1960">1960</option>
<option value="1961">1961</option>
<option value="1962">1962</option>
<option value="1963">1963</option>
<option value="1964">1964</option>
<option value="1965">1965</option>
<option value="1966">1966</option>
<option value="1967">1967</option>
<option value="1968">1968</option>
<option value="1969">1969</option>
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
<option value="1973">1973</option>
<option value="1974">1974</option>
<option value="1975">1975</option>
<option value="1976">1976</option>
<option value="1977">1977</option>
<option value="1978">1978</option>
<option value="1979">1979</option>
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
<option value="1984">1984</option>
<option value="1985">1985</option>
<option value="1986">1986</option>
<option value="1987">1987</option>
<option value="1988">1988</option>
<option value="1989">1989</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
</select>
因此,用户的生日为选中=。
它存储在数据库中,我得出这样的完整生日:
<?php echo $v["birthday"]; ?>
答案 0 :(得分:2)
感谢“Richard Fearn”和“Karem”,我已经完成了月份和年份的组合框。完整的源代码如下:
<?php
$month = date("n"); //without leading zero(o)
$year = date("Y"); //four digit format
$st_year = "2010"; //Starting Year
$month_names = array("January", "February", "March","April", "May", "June", "July", "August", "September", "October", "November", "December");
?>
<form name="Month_Year" id="Month_Year" action="<?php $SITE['REQURI'] ?>" method="post">
<select name="month" id="month">
<?php
for ($i=1; $i<=12; $i++) {
echo "<option ";
if ($i == $month) {
echo "selected=\"selected\" ";
}
echo "value=\"$i\">", $month_names[$i-1], "</option>\n";
}
?>
</select>
<select name="year" id="year">
<?php
for ($i=$st_year; $i<=$year; $i++) {
echo "<option ";
if ($i == $year) {
echo "selected=\"selected\" ";
}
echo "value=\"$i\">$i</option>\n";
}
?>
</select>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
<?php
$month = $_POST['month'];
$year = $_POST['year'];
$final_val = $month ."-". $year ;
echo $final_val;
?>
答案 1 :(得分:1)
如果您使用for
循环生成<option>
元素,例如:
for ($i=1; $i<=31; $i++) {
echo "<option value=\"$i\">$i</option>\n";
}
然后您可以稍微修改它以在适当的元素上插入selected
属性:
// Assuming $day is the user's day of birth
for ($i=1; $i<=31; $i++) {
echo "<option ";
if ($i == $day) {
echo "selected=\"selected\" ";
}
echo "value=\"$i\">$i</option>\n";
}
您会在月份和年份使用类似的循环。在几个月的情况下,您不想输出数字但想要月份名称,您可以将名称存储在数组中并在循环中索引到该数组中:
$month_names = array("Jan", "Feb", "Mar", ...);
for ($i=1; $i<=12; $i++) {
echo "<option ";
if ($i == $month) {
echo "selected=\"selected\" ";
}
echo "value=\"$i\">", $month_names[$i-1], "</option>\n";
}
要获取yyyy-mm-dd
出生日期字符串中的日/月/年,请使用explode
功能,如Sabeen Malik所示。
答案 2 :(得分:0)
不使用硬编码的HTML,而是使用for循环打印组合框,并根据用户选择的内容,在相关的“选项”中打印“已选择”
获取日期部分,您可以执行以下操作:
list($year , $month , $day) = explode("-" , $dob);
答案 3 :(得分:0)
我想我会添加我的方法作为答案。也许对某人有用。
这使用缩写的月份数组。
来自Sabeen的list()想法。
<?php
·
·
·
list( $dob['year'], $dob['month'], $dob['day'] ) = explode( "-", $user['birthday'] );
$user['dob'] = $dob;
?>
<select id="dob-day" name="dob-day">
<?php
foreach( range(1, 31) as $day )
printf( "<option%s>$day</option>", $day == $user['dob']['day'] ? ' selected' : '' );
?>
</select>
<select id="dob-month" name="dob-month">
<?php
$months = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
foreach( $months as $key => $month )
printf( "<option%s>$month</option>", $key + 1 == $user['dob']['month'] ? ' selected' : '' );
?>
</select>
<select id="dob-year" name="dob-year">
<?php
foreach( range( date('Y'), date('Y') - 105 ) as $year )
printf( "<option%s>$year</option>", $year == $user['dob']['year'] ? ' selected' : '' );
?>
</select>
?>