无法将PHP表单中发布的日期格式从mm/dd/yyyy更改为dd/mm/yyyy


cant change date format posted in form in PHP from mm/dd/yyyy to dd/mm/yyyy

我知道以前有人问过这个问题,但没有一个解决方案对我有效,我有一个表单,用户在其中输入出生日期,但由于原因,它被设置为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));