我在php或mysql中使用夏季格林尼治标准时间+02:00和冬季格林尼治标准时间+01:00有问题。
在php.ini date.timezone =‘欧洲/布拉格’
php和mysql是一样的,通过这种方式->
因此,由于strtotime使用本地时间,因此strtotime('20120101000000') returns 1325372400,同时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的时间
您能否帮助我,如果存在另一个亮丽的解决方案,或者如何设置NTP同步增加2小时
下一个问题是,web服务器显示您的时间(增加2小时是GMT...但事实并非如此)
发布于 2012-07-04 13:49:16
在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),然后在需要时将这些值转换为人类可读的字符串。
希望这能有所帮助。
https://stackoverflow.com/questions/11322893
复制相似问题