我从贝宝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'
谢谢
我从贝宝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'
谢谢
日期时间应该能够解析这个格式:
$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()
以确保在开始或结束时没有任何空格。
完美;)现在我只需要从PST转换到UTC,但没有问题。非常感谢你 – sineverba
@sineverba:很高兴我能帮忙:) –
尝试['DateTime :: createFromFormat'](http://us.php.net/manual/en/datetime.createfromformat.php)并明确指定您期望的日期格式。 – DCoder
@DoobyInc:OP已经知道如何改变格式,他只是问为什么它不工作,什么时候应该。 –