在我的网站上每个页面上都包含的导航栏.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']);
}
?>