2013-02-27 71 views
1

我如何轉換以下日期DateTime格式:將此轉換爲DateTime?

2013-02-21-12:25:13 

日期被傳遞給我們這樣,用 - 在一個空間應的日期和時間之間。

如何將其轉換爲DateTime格式? mySQL自動執行,但我想用PHP來完成。

我們正在尋找以下的輸出:

Y-m-d H:i:s 

回答

9
$date = DateTime::createFromFormat('Y-m-d-H:i:s', '2013-02-21-12:25:13'); 
echo $date->format('Y-m-d H:i:s'); 

是的,這是tested和證明工作。它輸出:

2013-02-21 12:25:13 
+1

+1以獲得正確的輸出。:) – 2013-02-27 05:00:11

+1

完美而乾淨,正是我之後所做的。 – Latox 2013-02-27 05:03:26

0

使用strtotime PHP函數,會幫助你。

echo date("Y-m-d H:i:s",strtotime(YOUR_DATE_STRING)); 
+0

已經嘗試過這一點,它返回作爲1970-01-01 11點33分33秒 – Latox 2013-02-27 04:52:24

0

嘗試以下

$old_date = '2013-02-21-12:25:13'; 
$new_date = date("Y-m-d H:i:s",$old_date); 
echo $new_date; 

代碼在一個線將是

echo date("Y-m-d H:i:s",'2013-02-21-12:25:13'); 
+0

請檢查更新的答案在這裏 – Techie 2013-02-27 04:51:50

+0

http://codepad.viper-7.com/HM5fFD – 2013-02-27 04:52:30

+0

它的工作原理這裏罰款 – Techie 2013-02-27 04:53:24

0

嘗試這種情況:

$date = '2013-02-21-12:25:13'; 
    $new_date = date('Y-m-d H:i:s', $date); 
    echo $new_date; 
+0

你測試過了嗎? http://codepad.viper-7.com/HM5fFD – 2013-02-27 04:53:28

+0

是的,我已經在我的本地 – 2013-02-27 04:54:08

+1

上完成了這一點,那麼你應該再次檢查你的本地......這是不可能的。 'date()'需要一個時間戳,而不是一個字符串。 – nickb 2013-02-27 04:55:29

0
$my_date = '2013-02-21-12:25:13'; 

$new_date = date("Y-m-d H:i:s", strtotime($my_date)); 

echo $new_date; 
0

試試這個:

$date = "2013-02-21-12:25:13"; 
$d = explode('-', $date); 

$date=$d[0].'-'.$d[1].'-'.$d[2].' '.$d[3]; 
echo date("Y-m-d H:i:s", strtotime($date)); 

O/P:

2013-02-21 12:25:13 

希望這將有助於!

0
$date = '2013-02-21-12:25:13'; 
$curdate = DateTime::createFromFormat('Y-m-d-H:i:s', $date); 
echo $curdate->format('Y-m-d H:i:s'); 
+0

這會殺死使用DateTime的點。讓DateTime用'DateTime :: createFromFormat'解析字符串。 – nickb 2013-02-27 04:56:30

0

非標準的日期格式?嘗試正則表達式你的出路是混亂的:

$string = "2013-02-21-12:25:13"; 
$date = date("Y-m-d H:i:s", 
    strtotime(preg_replace("/(?:\d+-\d+-\d+)-{1}/","",$string)) 
); 
0

試試這個

$date = '2013-02-21-12:25:13'; 
echo substr_replace($date,' ',10,1);