我的一个实体中的一个字段是“日期时间”变量。
如何将此字段转换为字符串以在浏览器中呈现?
这是一个代码片段:
{% 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;
这是我收到的错误消息:
在渲染模板期间引发了异常(“可捕获的致命错误:无法将类 DateTime 的对象转换为 …\app\cache\dev\twig\9b\ad\58fd3bb1517632badf1fdc7fa4a8.php 第 33 行中的字符串” ) 在第 10 行的“BeerBundle:Games:gameTable.html.twig”中。
虽然您可以使用
{{ game.gameDate|date('Y-m-d') }}
方法,请记住,此版本不支持用户区域设置,这对于仅由一个国家的用户使用的站点应该不是问题。国际用户应该显示完全不同的游戏日期,例如扩展\DateTime类,并为其添加一个__toString()方法来检查语言环境并采取相应措施。
\DateTime
__toString()
编辑 :
正如@Nic 在评论中指出的那样,如果您使用Twig 的 Intl 扩展名,您将有一个可用的localizeddate过滤器,它在用户的区域设置中显示日期。这样你就可以放弃我之前扩展的想法\DateTime。
localizeddate