Strtotime()格式不正确

时间:2012-10-17 14:39:53

标签: php mysql

我有一个'生日'的输入字段我正在使用一个javascript弹出窗口,以下面的格式“MM-DD'YYYY”返回日期,当我在插入代码的输入字段中显示echo值时,它显示正常,但当我使用

$c_birthday = $_POST['dateBorn'];
$birth=date('Y.m.d',strtotime($c_birthday));

如果我回显$ c_birthday,它会正确显示值,例如“10-02-2012”但是当我回显$ birth时,它显示2012-02-10,它是转换日期和月份,我试过了使用'Ymd',我得到相同的结果。

我应该看一下这个设置吗?

1 个答案:

答案 0 :(得分:4)

FROM PHP DOC

  

注意:

     

通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。

     

为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。

为了避免所述的潜在ambiguity,您可以使用:

$dt = DateTime::createFromFormat("m-d-Y", $c_birthday);
$dt->format("Y.m.d");