我的内部网页上有一个显示,显示每个部门的工作时间。问题是部门和用户遍布加拿大各地。我希望能够在div标签中根据用户的计算机时间显示每个部门的HoO。举个例子:
账单08:00至17:00东部。 客服07:00至16:00山。 技术支持太平洋时间09:00至20:00。
如果来自卡尔加里(山)的用户进入该页面,他们将会看到:
06:00至15:00结算 客户服务07:00至16:00 技术服务10:00至21:00
但如果来自温哥华的用户打开该页面,他们将根据计算机的时区设置查看小时数。
此外,我希望能够在每个部门旁边放置另一个div,根据这些时间在“开放”和“关闭”之间进行更改。
我搜索过这个例子,但到目前为止我只能根据设定的小时数找到一个显示打开/关闭的脚本。这意味着,如果计算机时区是那个小时,那么它显示为打开,是否实际上是该区域的HoO。
我很感激有关此事的任何信息。 切斯特
答案 0 :(得分:0)
对不起朋友们,正如Matt所说,我忘了输入我正在使用的代码,但我想我已经弄明白了。我意识到我应该使用getTimezoneoffset()来确定用户的PC时区,然后添加一些if语句来显示小时数。这是我使用的代码,我确信这是一种更清晰的方式来写出来,我不介意你的反馈:
var d new Date();
if (d.getDay() > 0 && d.getDay() < 6) { // Check if Monday to Friday
var openHour = 5;
var closeHour = 17;
}
var timezone = (d.getTimezoneoffset() / 60 - 6)*(-1), //Turn time zone into an integer to add it to display time
ohours = d.getHours(d.setHours(openHour + timezone)).toString().length == 1 ? '0'+d.getHours() : d.getHours(),
chours = d.getHours(d.setHours(closeHour + timezone)).toString().length == 1 ? '0'+d.getHours() : d.getHours(),
oampm = d.getHours(d.setHours(openHour + timezone)) >= 12 ? 'pm' : 'am',
campm = d.getHours(d.setHours(openHour + timezone)) >= 12 ? 'pm' : 'am';
var display = "Currently Closed";
if (!(isNaN(openHour)) && !(ht < openHour || ht > closeHour)) { //If openHour is empty or between openHour and closeHour
display = 'Open today from '+ohours+':00 '+oampm+' to '+chours+':00 '+campm;
}
document.getElementById("dayWeek").innerHTML = days[(new Date).getDay()];
document.getElementById("para1").innerHTML = display;
然后我使用div id来显示两个元素:
<h1><span id="dayWeek"></span> Hours</h1>
<div id="para1"></div>
输出看起来像这样(基于当前日期和时间),因为它的周日已关闭:
周日时间
目前已关闭