获取浏览器时区的使用案例

获取用户时区可以帮助您的应用程序显示相对于用户浏览器的日期和时间。这意味着纽约的用户将看到相对于America / New_York时区的时间,而印度的用户将根据Asia / Kolkata时区看到时间。
另一个用例可以是使用用户的时区代表他使用Google和Outlook等日历API创建活动。用户可以从前端选择时间,在后端,应用程序使用浏览器的时区在此时创建事件。应该注意,所有Calendar API都需要一个时区来创建一个事件。

检测用户时区名称
检测用户时间有两个步骤:

1.使用Javascript获取浏览器的时区偏移量,并将其发送到PHP(通过AJAX或其他)。
2.将时区偏移量转换为有效的TZ数据库时区名称,例如America / New_York,Asia / Kolkata。

1)获取浏览器时区偏移量
Javascript有一个getTimezoneOffset方法,它提供从当前本地时间到UTC的时区差异(以分钟为单位)。我们需要将此偏移量传递给服务器。
应该注意的是,getTimezoneOffset返回一个偏移量,如果本地时区落后于UTC则为正,如果前置则为负值。所以我们必须在偏移量上添加一个相反的符号(+或 – )。

var timezone_offset_minutes = new Date().getTimezoneOffset();
timezone_offset_minutes = timezone_offset_minutes == 0 ? 0 : -timezone_offset_minutes;

// Timezone difference in minutes such as 330 or -360 or 0
console.log(timezone_offset_minutes);

<span style="font-size: 14pt;"><strong>2)在PHP中,将时区偏移(以分钟为单位)转换为时区名称</strong></span>
您可以通过timezone_name_from_abbr函数从几分钟的时区偏移中获取时区名称。
// This is just an example. In application this will come from Javascript (via an AJAX or something)
$timezone_offset_minutes = 330; // $_GET['timezone_offset_minutes']

// Convert minutes to seconds
$timezone_name = timezone_name_from_abbr(“”, $timezone_offset_minutes*60, false);

// Asia/Kolkata
echo $timezone_name;

现在,当您获得时区名称时,您可以获得相对于用户时区的日期和时间:

date_default_timezone_set($timezone_name);

转载地址:http://usefulangle.com/post/31/detect-user-browser-timezone-name-in-php

SFTP 10054错误 ,LINUX

1.首先检查 你的网站根目录的权限是不是 775, 还有所有者必须是root:root,子目录的权限所有者是ftp用户 2.出现此种情况的一般是当你上传一个很大的文件突然...

阅读全文

selinux 开启和关闭(转载)

对于新手来说,linux的selinux困扰了一大批学员,开启后,导致文件权限修改不了等问题,下面就是关闭设置setlinux的方法 查看SELinux状态: 1、/usr/sbin/ses...

阅读全文

https链接在微信下打开白屏,在IOS下打开正常

https链接在微信下打开白屏,在IOS下打开正常,最近碰到这个奇葩的问题。解决方法登陆网站:https://myssl.com 输入自己的网址,点击检测。 修复文档地...

阅读全文

评论已经关闭。