大佬教程收集整理的这篇文章主要介绍了需要在每个连接的PHP / MySQL中使用UTC时间戳转换,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想独立于服务器上配置的时区,因此在脚本中我将时区设置为:
MysqL_query("SET time_zone = '".date_default_timezone_get()."';");
服务器当前配置为Europe / Moscow,当前为UTC 4
date_default_timezone_set('Europe/Berlin');
$sth = $dbh->prepare("SET time_zone = '".date_default_timezone_get()."';");
$sth->execute();
$sth = $dbh->prepare("SELECT * from logs WHERE time like '2011-06-1%'");
$sth->execute();
我正在使用时间戳字段类型,而不是日期时间.
我得到的显示的时间戳不是将来的2小时.
MysqL文档说:
因此,这使我想到了3种可能的情况:
>存储转换有效,请选择“否”:否-因为这样,时间戳记将过去2小时(冬季为1个小时)
>存储转换不起作用,但是选择它:不-因为那样我会看到-1小时的UTC,情况并非如此
>存储转换无效,选择转换无效:看起来像它!
$hourprec = "Y-m-d H:00:00";
$hour = date($hourprec); // MysqL compatible
...
REPLACE INTO logs (time,...) VALUES('".$hour."','"....
我可以想象这会给MysqLs时间转换带来麻烦,因为它以字符串形式出现,我应该执行FROM_UNIXTIME之类的操作.
但是它至少不应该与select一起使用吗?
我想念什么吗?如果要在MysqL数据库中的UTC中正确存储和读取时间戳,但在具有不同时区的脚本中读取/写入时间戳,该怎么办?
解决方法:
答案很简单.
您可以使用命令SET time_zone =’UTC’进行测试;
如果您与发问者有相同的问题,则应收到以下错误:
#1298 - UnkNown or incorrect time zone: 'UTC'
使用以下命令可以轻松解决此问题:
MysqL_tzinfo_to_sql /usr/share/zoneinfo/|MysqL -u root MysqL -p
以上是大佬教程为你收集整理的需要在每个连接的PHP / MySQL中使用UTC时间戳转换全部内容,希望文章能够帮你解决需要在每个连接的PHP / MySQL中使用UTC时间戳转换所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。