2012-05-07 130 views
3

我把這個日期當成一個字符串:10.21.2011,格式是mm.dd.yyyy如何將此日期轉換爲Y-m-d(PHP)?

我該如何將它轉換爲Y-m-d?這是我的嘗試,但它總是給我1970年的日期。

$date = date('Y-m-d', strtotime($date)); 

謝謝!

+0

你應該閱讀[文件](http://php.net/manual/en/function.strtotime.php):(約第一個參數)*日期/時間字符串。有效格式在[日期和時間格式](http://www.php.net/manual/en/datetime.formats.php)中解釋。*'mm.dd.yyy'不在該列表中。 –

+0

即使使用簡單的字符串操作,也可以解決您的問題。 – hakre

回答

3

很有可能是因爲一段.的:

$date = '10.21.2011'; 
echo date('Y-m-d', strtotime(str_replace('.', '/', $date))); 

結果:

2011-10-21 
8

的面向對象的方式:

$date = DateTime::createFromFormat('m.j.Y', '10.21.2011'); 
echo $date->format('Y-m-d'); 

我的看法是,這是方法一個人應該嘗試學習PHP。

需要PHP 5.3。

2
$date = '10.21.2011'; 
$date = strtotime(str_replace('.','/',$date)); 
echo date("Y-m-d",$date); 

這應該這樣做

0
$date = preg_replace('/(\d{2})\.(\d{2})\.(\d{4})/', '$3-$1-$2', $date); 
+0

@eis,上面的代碼在發佈之前進行了仔細的測試。有用。 – ndlinh

+0

啊,我的壞,d {2}只是在那裏告訴它,它是關於兩位數。沒關係。 :) – eis