0
我刚刚将一个Symfony2.4项目迁移到Symfony3.0,我面临着一个奇怪的情况。Symfony3使用时区的原则
该项目的默认时区是UTC,所有内容都以UTC时间戳存储在MYSQL数据库中。
我检索与名为 'Checkout' 日期时间字段中的项,将它传递给树枝模板:
<p>{{ dump(entity.checkOut) }}</p>
<p>{{ dump(entity.checkOut.getTimestamp()) }}</p>
我也得到:
DateTime {#585 ▼
+"date": "2016-09-17 10:46:00.000000"
+"timezone_type": 3
+"timezone": "UTC"
}
1474109160
这是正确的。
但我的应用程序应该支持来自不同时区的用户。所以我存储用户的首选时区和使用事件侦听器来设置它
date_default_timezone_set($this->token_storage->getToken()->getUser()->getTimezone());
,同样进入后显示:
DateTime {#585 ▼
+"date": "2016-09-17 10:46:00.000000"
+"timezone_type": 3
+"timezone": "Asia/Jakarta"
}
1474083960
这显然是错误的,因为时间戳现在是不同的。我期望这样:
DateTime {#585 ▼
+"date": "2016-09-17 17:46:00.000000"
+"timezone_type": 3
+"timezone": "Asia/Jakarta"
}
1474109160
这用于在sf2.4罚款。任何人都可以解释问题是什么,我该如何解决它?
谢谢您的回答。这确实是一个解决方案,但需要我更新网站上的每个模板。还有一些情况下,例如我必须获取特定月份的所有记录,并且在这些情况下,我还应该考虑用户的时区。更改默认时区非常方便,因为所有内容都是根据用户的时区计算的。 – gtsouk
方便是的,但仍然错误,因为你正在经历。 – vascowhite