PHP-在Unix中获取设备/浏览器的本地时间

时间:2018-12-28 20:58:37

标签: php browser time

我需要在页面上回显最终用户设备的时间,理想情况下应该是

Q1)发现最终用户的时区,

2)然后,我将使用$currenttimeunix = time();

获得当前的Unix时间。

Q3)调整时区差异

2我可以做,所以在第一季度和第三季度我需要帮助

1 个答案:

答案 0 :(得分:0)

由于它是JavaScript(或任何客户端语言)的职责,因此您无法通过php对用户的设备/浏览器/进行任何操作。

PHP在服务器上运行,而不是在用户设备上运行。 time()将永远为您提供服务器的时间,而不是用户的时间。

有关如何通过javascript(使用jquery)获取用户的本地时间的更多详细信息,请选中this answer。尽管您永远无法相信它,因为@FelippeDuarte和@Andreas在您的问题中在评论中讨论了它。


更新 我复制了上述答案中最重要的部分。

在您希望将时区作为变量的PHP页面上,将此代码段放在页面顶部附近:

<?php    
    session_start();
    $timezone = $_SESSION['time'];
?>

这将读取我们现在将要创建的会话变量“时间”。

在同一页面的<head>部分中,首先需要包括jQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

也在<head>部分中,粘贴以下jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        if("<?php echo $timezone; ?>".length==0){
            var visitortime = new Date();
            var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
            $.ajax({
                type: "GET",
                url: "http://example.com/timezone.php",
                data: 'time='+ visitortimezone,
                success: function(){
                    location.reload();
                }
            });
        }
    });
</script>

创建一个名为 timezone.php 的新文件,并使用上面的URL指向该文件

<?php
    session_start();
    $_SESSION['time'] = $_GET['time'];
?>

如果此方法正常运行,它将首先加载页面,执行JavaScript,然后重新加载页面。然后,您将能够读取$ timezone变量,并乐于使用它!它返回当前UTC / GMT时区偏移量(GMT -7)或您所在的任何时区。