错误500:DateTime :: __ construct():无法解析时间字符串

时间:2012-08-11 11:09:12

标签: php date joomla

在Joomla组件com_search中,我修改了以下行:

<?php if ($this->params->get('show_date')) echo JText::sprintf('Published %s', $result->created).'. '; ?>

为:

<?php if ($this->params->get('show_date')) echo '<span>'.JText::_('PUBLISHED').':     '.'</span>'.JText::sprintf('%s', JHtml::_('date',$result->created, JText::_('d. m. Y, H:i'))); ?>

并在搜索时遇到错误500:

DateTime::__construct(): Failed to parse time string (19. 06. 2012) at position 0 (1): Unexpected character

哪里有问题?

来自com_search的整个代码(default_results.php)以便更好地理解:

<div class="items">

<?php foreach ($this->results as $result) : ?>
<article class="item">

    <header>

        <?php if ( $result->href ) : ?>
        <h1 class="title"><a href="<?php echo JRoute::_($result->href); ?>" <?php if ($result->browsernav == 1 ) echo 'target="_blank"'; ?>><?php  echo $this->escape($result->title); ?></a></h1>
        <?php else : ?>
        <h1 class="title"><?php echo $this->escape($result->title); ?></h1>
        <?php endif; ?>

        <?php if ($result->section || $this->params->get('show_date')) : ?>
        <p class="meta">

            <?php if ($this->params->get('show_date')) echo '<span>'.JText::_('PUBLISHED').': '.'</span>'.JText::sprintf('%s', JHtml::_('date',$result->created, JText::_('d. m. Y, H:i'))); ?>
            <?php if ($result->section) echo JText::_('TPL_WARP_POSTED_IN').' '.$this->escape($result->section); ?>
        </p>
        <?php endif; ?>

    </header>

    <div class="content clearfix"><?php echo $result->text; ?></div>

</article>
<?php endforeach; ?>

</div>
<?php echo $this->pagination->getPagesLinks(); ?>

4 个答案:

答案 0 :(得分:0)

我刚刚将您的新系列复制并粘贴到Joomla 2.5.6的本地托管副本中,它完全正常 - 完全没有错误!

答案 1 :(得分:0)

  

DateTime :: __ construct():无法在位置0(1)处解析时间字符串(19. 06. 2012):意外字符

19. 06. 2012不是PHP的DateTime类接受的日期格式,请参阅PHP手册页“Date Formats”以获取理解的格式列表。

答案 2 :(得分:0)

在谷歌上花了四个小时来解决这个问题,结果证明我的原因是不可写的/logs/tmp文件夹。

要验证,请按以下步骤操作:

  1. 加载以下网址(替换您自己的域名和主机名):
    http://www.example.com/administrator/index.php?option=com_admin&view=sysinfo
  2. 导航至“所有者权利”
  3. 检查logstmp是否可写
  4. 如果没有,您应该更改 configuration.php 文件中这些文件的路径。
  5. 以下是帮助我得出这个结论的Joomla forum topic的相关引用:

      

    您好,我最近遇到了同样的问题,但发现了这个伎俩!

         

    日志目录($ log_path)./ logs / Unwritable
      临时目录($ tmp_path)./ tmp /不可写

         

    正确的目录路径必须是:
      日志目录($ log_path)../ logs /
      日志目录($ log_path)../ tmp /

答案 3 :(得分:-1)

在Joomla中,当尝试安装任何类型的扩展时,也会发生此错误,但PHP代码无法写入temp和logs目录。

如果进入系统,系统信息和目录权限,则所有权限都应该是可写的。可以在configuration.php中更改temp和logs目录的路径,也可以使用Global Configuration菜单和System and Server选项卡。