【问题标题】:DateTime::__construct(): Failed to parse time stringDateTime::__construct(): 解析时间字符串失败
【发布时间】:2014-02-06 07:37:01
【问题描述】:

我在我的网站上配置了 redmine 来处理异常。现在,当网站在生产环境中时,我遇到了奇怪的异常。

堆栈跟踪:

An exception has been thrown during the rendering of a template ("DateTime::__construct(): Failed to parse time string (date) at position 0 (d): The timezone could not be found in the database") in "ToFrontendBundle:Page:cruise-periodic.html.twig" at line 8.

#95: To\FrontendBundle\Controller\PageController->cruisePreviewAction(8, way, date)
#106: Symfony\Bundle\FrameworkBundle\Controller\Controller->render("ToFrontendBundle:Page:cruise-periodic.html.twig", array)
#112: Symfony\Bundle\TwigBundle\TwigEngine->renderResponse("ToFrontendBundle:Page:cruise-periodic.html.twig", array, NULL)
#83: Symfony\Bundle\TwigBundle\TwigEngine->render("ToFrontendBundle:Page:cruise-periodic.html.twig", array)
#53: Symfony\Bridge\Twig\TwigEngine->render("ToFrontendBundle:Page:cruise-periodic.html.twig", array)
#4423: Twig_Template->render(array)
#4416: Twig_Template->display(array)
#4446: Twig_Template->displayWithErrorHandling(array, array)

但是,我处理异常如下:

        try {
            $date = new \DateTime($date);
            $date = $date->format('j-n-Y');
        } catch (\Exception $e) {
            $date = new \DateTime("now");
            $date = $date->format('j-n-Y'); 
            $first = false;
        }

我的 Cruise-periodic.html.twig:

<span class="padding-left-10 light-green text-14 selected-date" data-date="{{ date | date('j/n/Y') }}">{{ date | toDateFormat }}</span>

我做错了什么?

编辑 有人导致异常,但我不知道如何。我无法手动测试这种情况。字符串变量“日期”和“方式”在 js 中被替换。可能有人正在寻找 dom href 并盲目地调用它。会是机器人还是机器人?如何阻止他们访问此操作?

【问题讨论】:

  • 当它需要一个可解析的日期时,您将字符串“日期”传递给 DateTime,因此“无法解析时间字符串(日期)”和 CruisePreviewAction(8,方式,日期)。找出原因。
  • 尝试使用$date的'Y-m-d'格式解析,行吗?
  • @Gordon 我使用 var Cruise = new Cruise($('#vessal-{{ Cruise.id }}'), "{{ path('to_frontend_cruise_preview', {'id': Cruise. id, '方式': '方式', '日期': '日期' }) }}");在 JS 中,但我总是用表单字段替换日期和方式。无论如何,我处理异常,所以我不能有这个问题,但我有。
  • @Victor 我不能使用这种格式。客户想要 j-n-Y 格式。
  • @psalkowski 我的意思是尝试用它来测试它是否有效,用于定义问题

标签: php symfony exception datetime


【解决方案1】:

我的意思是尝试执行下一个代码:

    try {
        $date = new \DateTime('2010-10-10');
        $date = $date->format('j-n-Y');
    } catch (\Exception $e) {
        $date = new \DateTime("now");
        $date = $date->format('j-n-Y'); 
        $first = false;
    }

它是否也捕获了这个异常或者它有效?

【讨论】:

  • 今晚我试试
  • Аnd 结果如何?
  • 请等待 20 小时查看结果
  • 已经 6,467 小时 - 运气好吗? :>
猜你喜欢
  • 2021-09-12
  • 1970-01-01
  • 2018-08-24
  • 2012-08-08
  • 2019-09-07
  • 2016-03-08
  • 2013-06-29
  • 1970-01-01
  • 2014-02-11
相关资源
最近更新 更多