2014-02-13 57 views
0

我有當我在輸入日期時間輸入時區之間進行轉換的PHP

echo $_POST['fromDate']; 

響應輸入12-31-2014 10:00:00 PM,抓住本地時間

date_default_timezone_set('America/Los_Angeles'); 
echo "<input type='datetime-local' name='fromDate' class='dates'>"; 

一個輸入框:2014-12-31T22:00:00

$test = new DateTime($_POST['fromDate']); 
echo $test; 

我得到2014-12-31T22:00:00 America/Los_Angeles

然後,當我轉換

$from_dateGMT = new DateTime($_POST['fromDate'], new DateTimeZone('Europe/Paris')); 
$from_date = $from_dateGMT->format('Y-m-d\TH:i:s'); 
echo $from_date; 

我得到2014-12-31T22:12:00 UTC,這是上面列出,並應增加8小時同時進行。

我在做什麼錯?

我不會在PHP中處理日期/時間,所以這對我來說是一種學習體驗。

+3

該錯誤可能是因爲你試圖使用'DateTime' **對象**在**字符串**上下文中。但是,你的問題*中的代碼行*不應該導致該錯誤。請顯示更多代碼。 (另外,請看[這個類似的問題](http://stackoverflow.com/q/10209941/1438393)。) –

+0

你是對的,這是一個格式問題。我修復了這個問題,但現在還沒有轉換。我會更新上面的信息。 – Andrew

+0

上面更新的代碼和問題。 – Andrew

回答

1

也許這將工作

$test = new DateTime($_POST['fromDate'], new DateTimeZone('America/Los_Angeles')); 
$test->setTimezone(new DateTimeZone('Europe/Paris')); 
echo $test->format('Y-m-d\TH:i:s'); 

至少,這是它是如何PHP手冊在這裏完成:http://us2.php.net/manual/en/datetime.settimezone.php

+0

這工作,你應該得到一個餅乾!謝謝 – Andrew