PHP:解析postgre';的默认字符串时间戳格式


PHP: Parsing postgre's default string time-stamp format

我有问题以通用的方式解析以下两个时间戳字符串?

$timestamp1 = "2013-10-15 19:05:18.756932+03";
$timestamp2 = "2013-10-15 19:05:18.756932+03:00";

到目前为止,我有这个,但它以false 返回

$datetime = DateTime::createFromFormat('Y-m-d HH:MM:SS frac "GMT"? [+-] hh ":"? MM?', $timestamp1);
$datetime = DateTime::createFromFormat('Y-m-d HH:MM:SS frac "GMT"? [+-] hh ":"? MM?', $timestamp2);

怎么了?非常感谢。

附言:我试过这个'Y-m-d HH:MM:SSfrac"GMT"?[+-]hh":"?MM?'、这个''Y-m-d HH:MM:SS[0-9]+"GMT"?[+-]hh":"?MM?'和这个'Y-m-d HH:MM:SS [0-9] "GMT"? [+-] hh ":"? MM?',但总是失败。

假设最后一部分是时区偏移,Y-m-d H:i:s.ue应该可以工作。

如果这是posgre的默认格式,那么当Y-m-d H:i:se没有小数秒(2013-10-15 19:05:18+03)时,您可能需要处理这种情况。

您的格式字符串中有一个错误。

$datetime = DateTime::createFromFormat('Y-m-d H:i:s.uP', $timestamp1);

以下是格式字符串选项的文档:PHP:DateTime::createFromFormat手动