同步MySQL和PHP时间
我正在尝试同步我的PHP和MySQL时间。目前时间不同(输出如下): 通过阅读其他用户的资料,我成功地使用同步MySQL和PHP时间,php,mysql,sql,timezone,Php,Mysql,Sql,Timezone,我正在尝试同步我的PHP和MySQL时间。目前时间不同(输出如下): 通过阅读其他用户的资料,我成功地使用SET time_zone='-7:00'更改了MySQL的时间。问题是,根据用户的位置,不同查询的时间会有所不同,我不希望每次查询都更改时区 我是否应该只设置一次时区,使其与服务器的时间相同,然后在PHP中根据用户的时区更改时间?还是有更好的办法 提前谢谢你 您肯定希望在应用程序/数据库中使用单个时区。只有在向用户显示数据时需要更改数据的时区(不在db或php默认tz中),然后只在即将显示
SET time_zone='-7:00'更改了MySQL的时间代码>。问题是,根据用户的位置,不同查询的时间会有所不同,我不希望每次查询都更改时区
我是否应该只设置一次时区
,使其与服务器的时间相同,然后在PHP中根据用户的时区更改时间?还是有更好的办法
提前谢谢你 您肯定希望在应用程序/数据库中使用单个时区。只有在向用户显示数据时需要更改数据的时区(不在db或php默认tz中),然后只在即将显示数据之前进行更改。否则,请使用单个时区。我更喜欢格林尼治标准时间
设置mysql服务器时区:在my.conf中
有这样的东西:default timezone='GMT'
然后重新启动mysql
见:
对于php,应在每个页面顶部的某个位置执行以下命令:
date_default_timezone_set("GMT");
我应该只设置一次时区,使其与服务器的时间相同,然后在PHP中根据用户的时区更改时间吗?还是有更好的办法
对。由于夏令时的原因,您也不应该通过GMT时区设置时区。您可以自己编写函数,通过设置日期\默认\时区\设置('UTC')来完成此转换;然后转到用户的时区
$time = strtotime('2013-03-16 13:14:28'.' UTC');
echo date('Y-m-d g:i:s',$time); //2013-03-16 9:14:28
另一种方法是将mysql时间存储在“Unix时间”中,然后使用PHP仅转换一次。如何才能使数据库中已设置的日期正确,而这些日期是使用不正确的时区设置的?您需要使用正确时区中的日期更新数据库中的任何日期。只有知道前一个时区是什么,才能这样做。更新db.table setdate
=转换日期(date
,'old TZ','GMT')感谢您提供有关转换日期的提示!哦,我喜欢将它们存储在Unix时间,然后每次都进行转换的想法。谢谢
$time = strtotime('2013-03-16 13:14:28'.' UTC');
echo date('Y-m-d g:i:s',$time); //2013-03-16 9:14:28