如何解决将用户的时区与网站的办公地点时区进行比较
|| 我正在一个项目中,我需要向网站的访问者显示联系区域中的消息,例如: 联络电话:+ 91-99-3241-5285[You can call us now]
该消息在上一行中突出显示,现在我的问题是,如何将用户的时区与公司办公室的工作时间进行比较。
附言-假设该公司位于印度,其工作时间为9.00am至5.00pm。
有什么建议么?
解决方法
使用javascript确定用户时区偏移量:
http://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp
var d = new Date()
var gmtHours = -d.getTimezoneOffset()/60;
document.write(\"The local time zone is: GMT \" + gmtHours);
然后计算印度当前时间(格林尼治标准时间+ 5:30,如果我没记错的话),并且如果得出的时间在工作时间内,则显示“您可以立即致电我们”。
var diff = gmtHours - 5.5; // -> difference between users timezone and india in hours
var indiaDate = new Date();
indiaDate.setTime(d.getTime() - (diff * 60 * 60 * 1000));
document.write(\"<br />Current time in India: \" + indiaDate.toString());
参见工作示例,网址为:http://jsfiddle.net/roberkules/RLsw9/
, 您问题下方的答复是正确的。无需知道客户所在的时区即可计算当前时间是否在营业时间内。现在是美国太平洋时间上午8:00,美国东部时间上午11:00,还是菲律宾马尼拉晚上11:00都没有关系。重要的是,时间与工作时间有关,而不与客户有关。
通常,在我运行的所有Web服务器上,我都将服务器时间设置为UTC。当人们输入小时数时,要么让他们在格林尼治标准时间中输入,要么,如果您希望他们能够在当地时间输入时数,请在页面上显示时区列表或组合框。您可以使用PHP的DateTimeZone :: listAbbreviations()函数来提供帮助。
因此,例如,假设有人输入他们的时间是在亚洲/ Calcutta时区的上午9:00到下午5:00。在使用时间进行计算时,假设您有名为hrs_start
,hrs_end
和hrs_tz
的行,请执行以下操作:
$hrs_tz = new DateTimeZone($row[\'hrs_tz\']);
$hrs_start = new DateTime($row[\'hrs_start\'],$hrs_tz);
$hrs_end = new DateTime($row[\'hrs_end\'],$hrs_tz);
现在,您可以使用这些时间来计算这些时间是否在其工作时间之内或之外。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。