我需要在页面上回显最终用户设备的时间,理想情况下应该是
Q1)发现最终用户的时区,
2)然后,我将使用$currenttimeunix = time();
Q3)调整时区差异
2我可以做,所以在第一季度和第三季度我需要帮助
答案 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)或您所在的任何时区。