symfony2表单与数据库中的对象不匹配

时间:2014-12-08 11:27:04

标签: forms date symfony view mismatch

我对Symfony2表单中的日期有一个非常奇怪的问题。

这是一个假期预订网站。在客户端,一切正常,但是 什么时候(因为几天 - 不知道为什么!)尝试编辑管理员方面的预订,以获得表格中的日期不匹配。似乎symfony表单组件没有以正确的方式映射日期。这是我在分析器中看到的:

模型格式与规范化格式相同 标准化格式
对象(日期时间) - 2015-04-05T00:00:00 + 0200 查看格式 2015年4月4日

你知道这个的原因是什么吗?我已经以适当的方式配置了php和web和cli的时区,这种不匹配就在那里了几天。

屏幕截图:http://i.imgur.com/2mSx1ec.png

1 个答案:

答案 0 :(得分:0)

我认为这些日期与俄罗斯有关,我是对的吗?

你实际上有Object(DateTime) - 2015-04-05T00:00:00+0200代表一个图书馆。

Object(DateTime) - 2015-04-04T23:00:00+0100 - 在其他图书馆。

这是因为Symfony使用Intl将DateTime对象转换为TimeZone时间。但PHP使用内部转换器。

今年在俄罗斯的时间变化导致所有时间问题。莫斯科TimeZone现在还没有UTC + 4但是UTC + 3。并且一些库已更新以解决此问题,但其他库则没有。

您可以通过自行编译Intl并进行适当的时移来手动修复它,或者您可以使用一些意大利面条代码在应用程序中修复它。