2016-09-28 175 views
0

我收到一個字符串,如Wed Sep 28 2016 01:00:00 GMT + 0500(PKT)我需要將其轉換爲2016-09-28 01:00: 00 我已經試過這PHP - 將字符串轉換爲日期

$startTime = strtotime($updatedData['start']); 
echo $time = date("Y-m-d H:i:s",$startTime); 

但它返回我2016年9月27日20:00:00

+0

這是因爲時區,時間是+5,但結果是+0。 – danopz

+0

檢查您的時區 – follio

+0

您的出門日期是格林尼治標準時間。所以請設置time_zone並運行腳本 –

回答

2

你可以改變它使用DateTime

$startTime = new DateTime('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)'); 
echo $startTime->format('Y-m-d H:i:s'); 

日期時間讓你給他的時區。

活生生的例子:https://3v4l.org/UTltO

+0

正是我需要 – baig772

0

試試這個:

$startTime = strtotime($updatedData['start']); 
$time = date("Y-m-d H:i:s",$startTime); 
echo date("Y-M-d H:i:s", strtotime($time) + 5 * 3600); 

它返回UTC時間,你確實需要增加5個小時。也是一個快速的建議。您可以使用Carbon來處理日期時間。

0

您可以在轉換之前設置所需的時區。請參閱下面的代碼作爲參考。

date_default_timezone_set("Asia/Bangkok"); 
$str = 'Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)'; 
$startTime = strtotime($str); 
echo $time = date("Y-m-d H:i:s",$startTime); 
2

@copynpaste的解決方案是好的,直線前進,但我仍然會用炭分享我的解決方案。

碳是與laravel一起包含的庫,這裏是 documentation

$carbon = new Carbon('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)'); 
$carbon->format('Y-m-d H:i:s'); 
echo $carbon; 

就會出來的結果一樣的DateTime

2016-09-28 01:00:00 

是這麼好,什麼樣的碳,你可以再補充一天,分,秒等的只是一個很小的代碼,這裏有一個例子:

$carbon->addDays(1); 
echo $carbon; 

//result 
2016-09-29 01:00:00 
+0

'$ dateTime->修改( '+1天')'https://3v4l.org/PFuig – danopz

+1

+1我喜歡這個答案因爲這個問題被標記爲laravel,並且這個答案提供了一種使用碳的方法。 – ubuntugod