PHP: конвертировать дату с помощью класса DateTime

У меня есть дата с PayPal IPN

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

Как я могу преобразовать в Ymd\TH:i:s\Z ?

Я попытался

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

Но в моей БД я получаю только '0000-00-00 00:00:00'

спасибо

DateTime должен иметь возможность проанализировать этот формат:

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

Выход :

 2009-01-13T20:12:59Z 

Это должно работать должным образом. Ваша переменная $_POST['payment_date'] может содержать некоторые дополнительные символы в начале или конце. Вы можете попробовать trim() в переменной $_POST чтобы убедиться, что в начале или конце нет пробелов.