我有一个Ubuntu/Apache2/PHP(Symfony2)/ MySQL日期问题。我认为这是一个系统问题,因为我没有它在开发环境中,只有在rec和prod中。当我发布一个包含日期时间的表单时,数据库中的内容少于我输入的时间2小时。当我阅读它时,屏幕上的日期时间与我在数据库中的相同。 2小时的差异符合我的时区(欧洲/巴黎)。TimeZone调试需要帮助
开发环境:
- 本地机器
- 的Ubuntu 16.04 LTS桌面
- 阿帕奇/ 2.4.18(Ubuntu的)
- Mysql的5.5.43-0 +上的虚拟主机的Debian 8 deb8u1 LAN
- PHP 7.0.8-0ubuntu0.16.04.2,Symfony的2.8.7
REC /生产环境:
- 两个相同的专用服务器上
- 的Ubuntu 15.10服务器
- 的Apache/2.4.12
- MySQL的5.6.28-0ubuntu0.15.10.1
- PHP 5.6.11 -1ubuntu3.1
当我运行在两台机器上date -R
,我有一个匹配:Sat, 24 Sep 2016 19:39:53 +0200
,几秒钟&更少,因为我已经采取了键入命令的时间。
/etc/timezone
在两台机器上都包含“Europe/Paris”。
在这两台机器上,PHP的(CGI方)date.timezone也是“欧洲/巴黎”。
在两台机器上,SQL查询SELECT @@global.time_zone, @@session.time_zone;
返回 “SYSTEM” & “SYSTEM”
我用引导日期时间选择器,基于moment.js,进入这个日期&时间。但我通过检查浏览器控制台中的POST数据并将其从犯罪嫌疑人身上清除,并确认日期未被更改。
这两个机器上的应用程序代码是相同的(相同的颠覆版本)。
您是否看到别人要测试的东西?
看起来像你发现它!我支持项目工作区,更新了我的一个开发人员的symfony/symfony,并重现了错误。然后我像你提议的那样打补丁,并且bug消失了。但我肯定无法在自动交付过程中为这样的供应商打补丁,我已经读到它只会在下个月初修复。所以我仍然在寻找一个干净的解决方案。 – Moonchild
作为临时修复,可能会覆盖您的src中的班级! – frian
我使用作曲者的symfony/symfony 2.8.7修正了symfony/symfony的版本号。必要时我会手动测试并升级Symfony。对我来说这样更安全。 – Moonchild