2

我有这个来自 PayPal IPN 的日期

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');

但在我的数据库中,我只获得'0000-00-00 00:00:00'

谢谢

4

1 回答 1

7

DateTime 应该能够解析这种格式:

$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;

输出

2009-01-13T20:12:59Z

这应该按预期工作。您的$_POST['payment_date']变量可能在开头或结尾包含一些额外的字符。您可以尝试trim()使用该$_POST变量以确保开头或结尾没有任何空格。

于 2013-11-09T10:27:46.290 回答