【问题标题】:PHP, how to set timezone?PHP,如何设置时区?
【发布时间】:2010-10-07 09:45:44
【问题描述】:

我正在使用 PHP 和 mysql。

场景:

注册表只需要 2 个字段。邮箱和密码,然后,第一个用户来自英国,第二个用户来自中国,等等。

有没有办法在 PHP 中为不同国家的用户自动设置时区?我检查了 php.net,但没有运气..

【问题讨论】:

    标签: php timezone


    【解决方案1】:

    您可以尝试推断他们的country from their IP,并从中得出他们的时区。

    或者,在表单中添加类似这样的内容并让 Javascript 告诉您浏览器使用的时区偏移量...

    <script language="JavaScript">
    <!-- 
        var d= new Date();
        document.write('<input type="hidden" name="timeZoneOffset" ');
        if (d) {
            document.write('value="' + d.getTimezoneOffset()/60 + '">');
        } else {
            document.write('value="n/a">');
        }
    // -->
    </script>
    <noscript>
        <input type="hidden" name="timeZoneOffset" value="n/a">
    </noscript>
    

    【讨论】:

    • 谢谢,我试试看。也许我应该开始学习像javascript这样的客户端脚本..
    • 请注意,这会为您提供与 UTC now 的偏移量;如果用户居住在 DST 当然可以改变的地区。
    • 我尝试了这段代码,我得到了一个正偏移量,而它应该是负数。然而,这段代码给了我更好的结果:bitbucket.org/pellepim/jstimezonedetect
    【解决方案2】:

    不,这不可能通过 php,因为浏览器并不总是发送该信息。上次我们通过发送 ajax 调用和更新会话的时区属性解决了这个问题,因为 javascript 引擎确实可以访问该浏览器属性。

    【讨论】:

    • 你的意思是我们可以用javascript做吗?
    猜你喜欢
    • 1970-01-01
    • 2012-10-19
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2016-03-26
    相关资源
    最近更新 更多