【问题标题】:Editing server time for a PHP script编辑 PHP 脚本的服务器时间
【发布时间】:2012-02-23 20:27:07
【问题描述】:

我已经更改了在 MySQL 中使用“日期时间”标记来保存日志提交到数据库的时间的方式。

我以这种格式保存它 date("Y-m-d G:i:s"); 输出如下:2012-02-22 20:20:01

唯一的问题是我在英国,我的主机/服务器不是。

我发现了如何编辑时间以使其与英国时间保持一致,方法是这样做: date = date("Y-m-d G:i:s", strtotime("+14"));

所以现在我有正确的时间,我认为我会没事的,但现在我注意到日期与英国日期/时间不一致。

如果我现在提交它会显示:2012-02-22 20:25:36 当时间/日期实际上是 2012-02-23 20:20:01

所以看起来是这样,因为我的脚本晚了 14 小时,它把日期敲到了。

有什么办法可以解决吗?

谢谢,山姆!

【问题讨论】:

    标签: php mysql datetime date time


    【解决方案1】:

    在你的程序中包含这个

    date_default_timezone_set('欧洲/伦敦');

    【讨论】:

    • 只针对单个脚本。这不是一个全球性的解决方案。
    • 对不起,我在哪里添加呢?我有一个带有 $date = date("Y-m-d G:i:s", strtotime("+14")); 的全局配置文件,然后我只需在我需要的地方键入 $date MySQL 查询。
    • 您可以将它添加到程序的顶部。你不需要使用 $date = date("Y-m-d G:i:s", strtotime("+14"));完全转换。
    【解决方案2】:

    在您的 php.ini 文件中添加这一行:

    date.timezone = "Europe/London"
    

    现在,无论您何时使用日期或时间函数,它都会根据您的指定进行调整。

    有关欧洲时区的完整列表:

    http://www.php.net/manual/en/timezones.europe.php

    【讨论】:

      【解决方案3】:

      使用 PHP 日期时间模块:Supported Timezones

      $tz = new DateTimeZone('Pacific/Kiritimati'); // Change this to YOUR needed Timezone
      $datetime_GMT  = new DateTime(strtotime($server_or_SQL_date));
      $datetime_GMT->setTimezone($tz);
      $datetime_GMT->format("Y-m-d G:i:s");
      echo $datetime_GMT;
      

      【讨论】:

        猜你喜欢
        • 2012-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 2014-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多