开发者社区> 问答> 正文

在不同时区处理PHP服务器和MySQL服务器

对于我们这些使用标准共享托管软件包(例如GoDaddy或Network Solutions)的用户,当托管服务器(PHP)和MySQL服务器位于不同时区时,如何处理日期时间转换?

另外,是否有人有最佳实践建议来确定您网站的访问者所在的时区并适当地操纵datetime变量?

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 15:44:23 773 0
1 条回答
写回答
取消 提交回答
  • 从PHP 5.1.0开始,您可以使用date_default_timezone_set()函数设置脚本中所有日期/时间函数使用的默认时区。

    对于MySql(引自“ MySQL服务器时区支持”页面)

    在MySQL 4.1.3之前,服务器只能在启动时设置的系统时区运行。从MySQL 4.1.3开始,服务器维护多个时区设置,其中一些可以在运行时修改。

    您感兴趣的是时区的每个连接设置,您将在脚本开始时使用该设置

    SET timezone = 'Europe/London'; 至于检测客户端时区设置,您可以使用一些JavaScript来获取该信息并将其保存到cookie,然后在后续页面读取中使用它来计算正确的时区。

    //Returns the offset (time difference) between Greenwich Mean Time (GMT) //and local time of Date object, in minutes. var offset = new Date().getTimezoneOffset(); document.cookie = 'timezoneOffset=' + escape(offset); 或者,您可以为用户提供选择自己的时区的选择权。

    2019-11-15 15:44:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像