2016-04-23 83 views
0

我在我的內部網頁上顯示了每個部門的運行小時數。問題在於部門和用戶遍佈加拿大各地。我希望能夠根據用戶的計算機時間在div標籤中顯示每個部門的HoO。舉個例子:Javascript運行時間計算機時區

付款東部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是否實際上是該區域。

我很欣賞這方面的任何信息。 Chester

+0

顯示你的嘗試。你的問題是可以理解的,但你沒有表現出任何努力。你不能只列出你的要求,並期望我們提供一個完整的解決方案。 StackOverflow不是一個代碼租用服務。 –

+0

對不起,馬特。我完全忘了輸入我的代碼,但我想我已經明白了。 – Chester

回答

0

對不起人們,正如馬特提到的,我忘記了在我使用的代碼中,但我想我已經知道了。我意識到我應該使用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> 

輸出看起來是這樣的(基於當前日期和時間),因爲今天是星期天它關閉:

週日營業時間
目前關閉

+0

時區!=偏移量... –