我有这个来自 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'
谢谢
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
变量以确保开头或结尾没有任何空格。