我有问题要正常工作 夏季GMT +02:00 和 冬季GMT +01:00 在php或mysql中的时间
在php.ini date.timezone ='Europe / Prague'
通过这种方式,php和mysql的工作原理相同 - >所以strtotime('20120101000000') returns 1325372400
因为strtotime使用当地时间,而strtotime('20120101000000 UTC')
返回正确的值1325376000
但对我来说没有什么是正确的,例如: 当用户在2012年7月1日00:30获得金钱时我将它存储在没有UTC的strtotime ....但是当我在冬天读到它时,我会看到23:30 30.6.2012 ....因为我的GMT +小时被改变了
因此我尝试将当地时间设置为UTC并仅使用UTC ...但这意味着,我必须更改系统时间并添加到小时(GMT +02:00)现在工作正常
但必须停止NTP同步......因为我需要使用时间增加GMT +02:00
你能帮我吗,如果存在另一个brilant解决方案或如何设置NTP同步增加2小时
接下来的问题是,网络服务器说你的时间(增加2小时是GMT ......但事实并非如此)
答案 0 :(得分:2)
在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,您可以使用hte以下命令在每个查询的基础上执行此操作:
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),然后在需要时将这些值转换为人类可读的字符串。
希望这有帮助。