簡體   English   中英

正確的php日期/時間模式

[英]Correct php date/time pattern

我有此日期/時間格式:

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具有publish date屬性,而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'])
            );
        }
    }

您所有的格式都是標准格式,因此無需猜測格式, DateTime不僅可以自己進行格式化:

$dt = new DateTime('Fri, 17 Oct 2014 22:12:51 +3:30');
print_r($dt);

在您的方法load()您使用了+O+P格式,這不行。 OP還考慮了時區偏移量之前的正負號,因此無需在格式之前指定符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM