2012-10-17 114 views
0

我有一個'生日'的輸入字段我使用的JavaScript彈出式,以下面的格式「MM-DD'YYYY」返回日期,當我帶回輸入值在我的插入代碼字段,它顯示正常,但是當我使用Strtotime()格式不正確

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

如果我回聲$ c_birthday,其顯示值正確,如「10-02-2012」,但是當我回聲$誕生,它顯示2012-02-10,它是調整日期和月份,我試過使用'Ymd',我得到了相同的結果。

有沒有我應該看的設置?

回答

4

FROM PHP DOC

注:

日期在M/d/y或DMY格式通過查看在各個組件之間的分離器消除歧義:如果分離器是斜線(/),那麼假設美國的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");