用Javascript/PHP获取用户时区字符串?

Roy*_*Roy 4 php timezone

我试图将用户的时区作为单词上的字符串.例:

$timezone = "Asia/Tel_Aviv";
Run Code Online (Sandbox Code Playgroud)

在研究这个问题时,我得到了如何使用Javascript获取时区偏移,但我仍然不清楚如何将时区偏移量转换为php中的时区字符串,如上所示?

或者,我在Javascript/PHP中使用哪个其他方法获取每个用户的时区字符串?

我真的不确定如何处理这个问题.

Nic*_*ing 9

你不能单独用PHP做到这一点.

您可以使用Javascript在cookie中设置值,然后使用PHP在下一页(重新)加载时读取cookie.

使用Javascript:

var dateVar = new Date()
var offset = dateVar.getTimezoneOffset();
document.cookie = "offset="+offset;
Run Code Online (Sandbox Code Playgroud)

PHP:

echo $_COOKIE['offset'];
Run Code Online (Sandbox Code Playgroud)

使用此选项可将偏移量转换为PHP中的友好时区名称.Javascript以分钟为单位返回偏移量,而此PHP函数期望输入为秒 - 因此乘以60.第三个参数是您是否处于夏令时的布尔值.阅读手册并更新代码以满足您的需求.

echo timezone_name_from_abbr("", intval($_COOKIE['offset'])*60, 0);
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.timezone-name-from-abbr.php