2013-11-09 67 views
2

我從貝寶IPNPHP:轉換日期DateTime類

payment_date = 20:12:59 Jan 13, 2009 PST 

這個日期我怎麼能在Y-m-d\TH:i:s\Z轉換?

我曾嘗試與

$date = new DateTime($_POST['payment_date']); 
$payment_date = $date->format('Y-m-d\TH:i:s\Z'); 

但在我的DB我只獲得'0000-00-00 00:00:00'

謝謝

+2

嘗試['DateTime :: createFromFormat'](http://us.php.net/manual/en/datetime.createfromformat.php)並明確指定您期望的日期格式。 – DCoder

+1

@DoobyInc:OP已經知道如何改變格式,他只是問爲什麼它不工作,什麼時候應該。 –

回答

6

日期時間應該能夠解析這個格式:

$str = '20:12:59 Jan 13, 2009 PST';  
$date = new DateTime($str); 
$date->setTimezone(new DateTimezone('UTC')); 
$payment_date = $date->format('Y-m-d\TH:i:s\Z'); 
echo $payment_date; 

Output

2009-01-13T20:12:59Z 

這應該按預期工作。您的$_POST['payment_date']變量可能在開頭或結尾處包含一些額外的字符。您可以在$_POST變量上嘗試trim()以確保在開始或結束時沒有任何空格。

+2

完美;)現在我只需要從PST轉換到UTC,但沒有問題。非常感謝你 – sineverba

+0

@sineverba:很高興我能幫忙:) –