我能够从数据库中检索出生日期,并在用户输入出生日期后将其填充到选项标签中。但是,如果用户更新表单中的其他内容,则选项值将开始更新出错日期的数据库。它似乎由于某种原因倒退。我该如何解决这个问题?mysql检索用户出生日期和填充选项标签
if($_POST){
$dob = date('Y-m-d',strtotime($_POST['year']."-". $_POST['month']."-".$_POST['day']));
$retur = $userObj->updateProfile($dob);
}
public function updateProfile($dob){
$db = db_mysql::getInstance();
$qr = $db->query("UPDATE ".USERS." SET dob = $dob WHERE id = '".$udata."'") or die(mysql_error());
return $udata;
}
<label>Date of Birth:</label>
<select style="background-color: #D6CFD4;" name="month">
<option value="{date('F',strtotime($udata.dob))}">{date('F',strtotime($udata.dob))}</option>
<option value="01">January</option>
<option value="02">Febuary</option>
<select style="background-color: #D6CFD4;" name="day">
<option value="{date('d',strtotime($udata.dob))}">{date('d',strtotime($udata.dob))}</option>
<option value="01">01</option>
<option value="02">02</option>
<select style="background-color: #D6CFD4;" name="year">
<option value="{date('Y',strtotime($udata.dob))}">{date('Y',strtotime($udata.dob))}</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
OP将三部分零件通过strtotime,然后通过date()重新格式化。它不是完全有效的,但它会产生某种合法的日期,即使它是'1970-01-01',因为strtotime barfed并返回一个布尔值false /零。 –