【问题标题】:php mysql date.timezone and winter and summer timephp mysql date.timezone 和冬夏时间
【发布时间】:2012-07-04 14:12:42
【问题描述】:

我有问题需要解决 夏季格林威治标准时间 +02:00 和 冬季格林威治标准时间 +01:00 时间在 php 或 mysql 中

在 php.ini date.timezone = '欧洲/布拉格'

php 和 mysql 是一样的,通过这种方式 ->

所以strtotime('20120101000000') returns 1325372400 因为strtotime使用的是当地时间,同时strtotime('20120101000000 UTC')返回正确的值1325376000

但对我来说没有什么是正确的,例如: 当用户在 2012 年 1 月 7 日 00:30 收到钱时,我将其存储在没有 UTC 的 strtotime .... 但是当我在冬季阅读时,我会看到 23:30 30.6.2012 .... 因为我的格林威治标准时间 + 小时变了

所以我尝试将本地时间设置为 UTC 并仅使用 UTC...但这意味着,我必须更改系统时间并添加时间 (GMT +02:00) 现在一切正常

但必须停止 NTP 同步...因为我需要使用 GMT +02:00 增加的时间

如果存在另一个出色的解决方案或如何将 NTP 同步设置增加 2 小时,您能帮我吗

下一个问题是,该网络服务器说您的时间(增加 2 小时是格林威治标准时间......但不是)

【问题讨论】:

    标签: php mysql date timezone


    【解决方案1】:

    在 PHP 中,您可以使用函数在脚本中设置时区 date_default_timezone_set http://php.net/manual/en/function.date-default-timezone-set.php

    在 mysql 中,时区将默认为您的计算机/服务器的系统时间。您可以通过以下方式了解如何更改:

    http://dev.mysql.com/doc/refman//5.5/en/time-zone-support.html

    或者使用 mysql,您可以使用以下命令在每个查询的基础上执行此操作:

    CONVERT_TZ()
    http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

    最好通过将所有数据转换为单个 TZ 来处理时区,最好是一个不易受夏令时影响的 TZ。 GMT 或 UTC 是最佳实践。您可以在需要时将查询结果转换为所需的 TZ。或者,您可以使用 linux 时间戳(php: time()、strtotime()、Mysql: UNIX_TIMESTAMP),然后在需要时将这些值转换为人类可读的字符串。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2021-12-23
      • 2021-03-27
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多