2016-05-30 239 views
2

我想這個字符串 '2016年5月30日15:35:00' 轉換爲ISO 8601格式,它應該是這樣的:PHP ISO 8601的格式轉換問題

預期結果:2016 -05-30T15:35:00 + 05:30

我嘗試以下,但在輸出它的2小時以下,

$phpdate = strtotime('2016-05-30 15:35:00'); 

echo gmdate('Y-m-d\TH:i:s\+05:30', $phpdate); 

輸出:2016-05-30T13:35:00 + 05:30

我有沒有什麼地方搞錯了?或者是否有這種轉換更簡單的方法?

+0

使用日期代替gmdate – splash58

+0

'gmdate'用於UTC取而代之,你需要使用'日期',如'date('Ymd H:i:sP',$ phpdate);' –

+0

感謝您的快速回復:) –

回答

1

您使用PHP的gmdate功能,轉換日起UTC格式,而不是你需要使用date功能類似於

date_default_timezone_set("Asia/Kolkata");//Set your timezone to Asia/Kolkata 

$phpdate = strtotime('2016-05-30 15:35:00'); 

echo date('c', $phpdate);// 2016-05-30T13:35:00+05:30 if your timezone is of Asia/Kolkata 
+0

這似乎很明顯,但它增加了+02:00到我的時區,我如何特別添加亞洲/加爾各答時區? –

+0

您需要手動將'timezone'設置爲'Asia/Kolkata' –

1

用於處理日期我建議Carbon

您的問題更簡單的方法將是:

$date = new Carbon("2016-05-30 15:35:00"); 
echo $date->toIso8601String();