2014-10-17 2 views
1

у меня есть этот формат даты/времени:Правильная дата PHP/время картина

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. я не знаю, как это решить ?! (я использую в debril_rss_atom в Symfony для чтения 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']) 
      ); 
     } 
    } 
+1

Пожалуйста, добавьте образец кода, чтобы помочь другим воспроизвести вашу ошибку. –

+0

Пробовал ли вы без «+» в вашем идентификаторе формата, поскольку опция «P» уже включает его? –

+0

Я тестирую это с + и без +. –

ответ

1

Всех ваши форматы являются стандартными, поэтому нет необходимости угадывать формат, DateTime не более чем способен делать это сам по себе:

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

В вашем методе load() вы использовали формат +O и +P, которые не в порядке. O и P также учитывают плюс/минус перед смещением часового пояса, поэтому нет необходимости указывать знак перед форматом.

+0

Я знаю это, но если я не добавлю +, дайте мне ошибку. !!? (Я замечательный для этого ?!), я решу свою проблему, удаляя +3: 30 из pubDate.Thankyou –

+0

@RoohbakhshMasoud: можете ли вы показать мне ошибку, которую вы получите? –

+0

Невозможно предсказать формат даты: Вс, 19 Окт 2014 23:24:15 +3: 30 500 Внутренняя ошибка сервера - ParserException –

Смежные вопросы