传递javascript变量以在PHP中设置时区


Passing javascript variable to set timezone in PHP

在我的网站上每个页面上都包含的导航栏.php文件中,我想为每个用户设置时区。我找到了一个非常适合我的好 js 脚本。我可以回显变量,它正确地将"欧洲/布鲁塞尔"标识为我的时区。现在我希望能够将此时区变量设置为 PHP 中的时区。这是我目前在导航栏.php文件中的代码片段,但它不起作用。

<script type="text/javascript" src="domain/js/jstz.js"></script>
<script>
  $.ajax({
     var tz = jstz.determine(); 
     var tzname = tz.name();
     'url': 'navbar.php',
     'type': 'POST',
     'data': 'timezone=' + tzname
  });       
</script>
<?php 
$usertimezone = $_POST['timezone'];
date_default_timezone_set($usertimezone);
?>

有人能看到它有什么问题并帮助我吗?谢谢!

问题是时区是在页面加载后设置的。主页脚本始终使用默认的 php 时区设置。
您应该将时区值存储到会话变量中:

navbar.php:

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

main.php(加载整个初始页面的脚本)

<?php
session_start();
if (isset($_SESSION['timezone'])) {
  date_default_timezone_set($_SESSION['timezone']);  
}
?>