gpt4 book ai didi

php - 需要时区调试帮助

转载 作者:行者123 更新时间:2023-11-28 23:25:11 25 4
gpt4 key购买 nike

我有一个 Ubuntu/Apache2/PHP (Symfony2)/MySQL 日期问题。我认为这是一个系统问题,因为我在开发环境中没有它,只有在 rec 和 prod 环境中。当我发布包含日期时间的表单时,数据库中输入的时间比我输入的时间少 2 小时。当我阅读它时,屏幕上的日期时间与数据库中的日期时间相同。 2 小时时差符合我的时区(欧洲/巴黎)。

开发环境:

  • 本地机器
  • Ubuntu 16.04 LTS 桌面
  • Apache/2.4.18 (Ubuntu)
  • Mysql 5.5.43-0+deb8u1 在局域网上的 Debian 8 虚拟主机上
  • PHP 7.0.8-0ubuntu0.16.04.2,Symfony 2.8.7

录制/制作环境:

  • 都在同一个专用服务器上
  • 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 也是“Europe/Paris”。

在两台机器上,SQL 查询 SELECT @@global.time_zone, @@session.time_zone; 返回 "SYSTEM"& "SYSTEM"

我使用基于 moment.js 的引导日期时间选择器来输入此日期和时间。但我通过检查浏览器控制台中的 POSTed 数据并确认日期未被更改,将其从嫌疑人中排除。

两台机器上的应用程序代码相同(相同的颠覆版本)。

你看到其他东西要测试了吗?

最佳答案

可能是由于 this PR 最近才合并。

尝试改变这个

-            $dateTime = new \DateTime(sprintf('@%s', $timestamp), new \DateTimeZone($this->outputTimezone));
+ $dateTime = new \DateTime(sprintf('@%s', $timestamp));
+ // set timezone separately, as it would be ignored if set via the constructor,
+ // see http://php.net/manual/en/datetime.construct.php
+ $dateTime->setTimezone(new \DateTimeZone($this->outputTimezone));

DateTimeToLocalizedStringTransformerTest.php

参见 this .

关于php - 需要时区调试帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com