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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误500:DateTime :: __ construct():无法解析时间字符串相关的知识,希望对你有一定的参考价值。

在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(); ?>
答案

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

另一答案

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

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

另一答案

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

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

  1. 加载以下URL(替换您自己的域和主机名): http://www.example.com/administrator/index.php?option=com_admin&view=sysinfo
  2. 导航到“所有者权利”
  3. 检查logstmpare是否可写
  4. 如果没有,您应该更改configuration.php文件中这些文件的路径。

以下是来自Joomla forum topic的相关引用,它帮助我得出了这个结论:

你好我最近有同样的问题,但发现了诀窍!

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

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

另一答案

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

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

以上是关于错误500:DateTime :: __ construct():无法解析时间字符串的主要内容,如果未能解决你的问题,请参考以下文章

在Windows上仅使用Boost.DateTime和错误

Django_404_403_500页面处理

无法通过Paypal测试工具测试IPN(HTTP错误代码500)_Asp.net

DateTime::__construct(): 无法在位置 0 (2) 解析时间字符串 (2): 中的意外字符

比较 datetime mysql 和 flask

无法启动会话:已由 PHP 启动(设置了 $_SESSION)。 500 内部服务器错误 - RuntimeException