我的一个实体中的一个字段是一个“datetime”变量。

如何将此字段转换为字符串以在浏览器中呈现?

下面是一个代码片段:

{% for game in games %}
    ...
        <td> {{game.gameTeamIdOne.teamName}} </td>
        <td> {{game.gameTeamIdTwo.teamName}} </td>
        <td> {{game.gameDate}}</td>
    </tr>
{% endfor %}

下面是我的实体类中的变量:

/**
 * @var date $gameDate
 *
 * @ORM\Column(name="GAME_DATE", type="datetime", nullable=true)
 */
private $gameDate;

这是我得到的错误信息:

在渲染“BeerBundle:Games:gameTable.html”中的模板(“可捕获的致命错误:类DateTime的对象无法转换为字符串……\app\cache\dev\twig\9b\ad\58fd3bb1517632badf1fdc7fa4a8.php第33行”)时抛出了一个异常。第10行。


当前回答

不要忘记

@ORM \ HasLifecycleCallbacks ()

实体:

/**
     * Set gameDate
     *
     * @ORM\PrePersist
     */
    public function setGameDate()
    {
        $this->dateCreated = new \DateTime();

        return $this;
    }

观点:

{{项目。gameDate|date('Y-m-d H:i:s')}}

>>输出2013-09-18 16:14:20

其他回答

可以使用twig的函数date和三元操作符

{{ game.gameDate ? game.gameDate|date('d-m-Y H:i') : 'Not Available' }}

我知道这是一个相当老的问题,但我今天发现了这个问题,但答案不是我需要的。

这就是我需要的。

如果你像我一样,想要在twig中显示当前日期,你可以使用以下方法:

{} now”|日期m / d / (" Y ")}}

请参阅相关文档:

嫩枝枣

你可以用以下方法渲染

{{post. publhed_at |date("m/d/Y")}}

欲了解更多详情,请访问http://twig.sensiolabs.org/doc/filters/date.html

为了避免null值错误,可以使用以下代码:

{{ game.gameDate ? game.gameDate|date('Y-m-d H:i:s') : '' }}

新的format_datetime过滤器(2022)

在树枝3中,使用format_datetime过滤器。

它还支持本地化和自定义模式(ICU)。


{# 07/08/2019 #}
{{ '2019-08-07 23:39:12'|format_datetime('short', 'none', locale='fr') }}

{# mercredi 7 août 2019 23:39:12 UTC #}
{{ '2019-08-07 23:39:12'|format_datetime('full', 'full', locale='fr') }}

来源:https://twig.symfony.com/doc/3.x/filters/format_datetime.html