我知道以前有人问过这个问题,但没有一个解决方案对我有效,我有一个表单,用户在其中输入出生日期,但由于原因,它被设置为mm/dd/yyyy
,我想将其更改为dd/mm/yyyy
。我一输入日期(如1992年12月19日),就会提示无效的日期格式。
表单中的代码为:
<label for="name">Date of Birth (mm/dd/yyyy) <font color="red"> *</font></label>
<input type="text" name="DOB" value="<?php echo $info['DOB']; ?>" onfocus="$(this).removeClass('date required')" onchange="$(this).addClass('date required')" required />
POST后函数中的代码为:
$DOB = mysql_real_escape_string($_POST['DOB']);
编辑:使用此:
1)
$DOB = mysql_real_escape_string($_POST['DOB']);
$newDate = date("d/m/Y", strtotime($DOB));
或
2) $newDate = DateTime::createFromFormat('m/d/Y', $DOB)->format('d/m/Y');
就像他们说的那样,做这个
$DOB = mysql_real_escape_string($_POST['DOB']);
$newDate = date("d/m/Y", strtotime($DOB));
然后在插入或更新数据库的另一端,将日期改回mysql标准格式,如下所示:
$DOB_DB = mysql_real_escape_string($_POST['DOB']);
$DOB_DB = date("m/d/Y", strtotime($DOB_DB));
您可以使用strtotime
:
$oldDOB = mysql_real_escape_string($_POST['DOB']);
$DOB = date("d/m/Y", strtotime($oldDOB));