我有这个日期/时间格式:
Fri, 17 Oct 2014 22:12:51 +3:30
我知道正确的模式是:
'D, d M Y H:i:s P'
但是在使用此遭遇此错误时:
Impossible to guess date format :
Fri, 17 Oct 2014 22:12:51 +3:30
我认为发生此错误是因为+3:30(GMT)不是真,而真是+03:30。我不知道如何解决它?! (我在symfony中使用debril_rss_atom来读取rss,站点的rss有一个发布日期属性,debril有一个部分用于根据模式读取发布日期:)
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('services.xml');
$default = array(
\DateTime::RFC3339,
\DateTime::RSS,
\DateTime::W3C,
'Y-m-d\TH:i:s.uP',
'Y-m-d',
'd M Y H:i:s +O',
'D, d M Y H:i:s',
'D, d M Y H:i:s +P',
'D, d M Y H:i:s +O',
);
if (!isset($config['date_formats']))
{
$container->setParameter(
'debril_rss_atom.date_formats', $default
);
} else
{
$container->setParameter(
'debril_rss_atom.date_formats', array_merge($default, $config['date_formats'])
);
}
}
答案 0 :(得分:1)
您的所有格式都是标准格式,因此无需猜测格式,DateTime
能够自行完成此操作:
$dt = new DateTime('Fri, 17 Oct 2014 22:12:51 +3:30');
print_r($dt);
在您的方法load()
中,您使用了格式+O
和+P
,这是不正常的。 O
和P
还考虑了时区偏移之前的加/减,因此无需在格式之前指定符号。