2016-04-23 16 views
0

Ich habe eine Anzeige auf meiner Intranet-Seite, die die Betriebsstunden jeder Abteilung zeigt. Das Problem besteht darin, dass die Abteilungen und Benutzer in ganz Kanada verteilt sind. Ich möchte das HoO für jede Abteilung basierend auf der Computerzeit des Benutzers in einem Div-Tag anzeigen können. So als Beispiel:Javascript Stunden des Betriebs Computer Zeitzone

Abrechnung 08:00 bis 17:00 Ost. Kundenservice 07:00 bis 16:00 Uhr Berg. Technischer Support 09:00 bis 20:00 Pacific.

Wenn ein Benutzer von Calgary (Berg) auf der Seite geht, wird sie sehen:

Billing 6.00 bis 15.00 Kundenservice 7.00 bis 16.00 Technischer Service 10:00 21:00

Wenn jedoch ein Benutzer aus Vancouver die Seite öffnet, werden die Stunden basierend auf der Zeitzoneneinstellung des Computers angezeigt.

Auch ich möchte in der Lage sein, ein anderes div neben jeder Abteilung zu setzen, die basierend auf diesen Stunden zwischen "offen" und "geschlossen" wechselt.

Ich habe nach diesem Beispiel gesucht, aber bis jetzt kann ich nur ein Skript finden, um geöffnet/geschlossen basierend auf Stunden anzuzeigen. Das heißt, wenn die Computerzeitzone diese Stunde ist, dann zeigt es offen, ob der HoO tatsächlich für diese Region ist.

Ich freue mich über jede Information dazu. Chester

+0

Zeigen Sie, was Sie versucht haben. Ihre Frage ist verständlich, aber Sie haben keine Mühe gezeigt. Sie können nicht nur Ihre Anforderungen auflisten und erwarten, dass wir eine vollständige Lösung anbieten. StackOverflow ist kein Code-for-Hire-Service. –

+0

Sorry, dass Matt. Ich habe total vergessen, den Code einzugeben, den ich hatte, aber ich denke, ich habe es herausgefunden. – Chester

Antwort

0

Entschuldigung Leute, wie Matt erwähnte ich habe vergessen, den Code, den ich verwendete, zu setzen, aber ich denke, dass ich es herausgefunden habe. Ich erkannte, dass ich die getTimezoneoffset() verwenden sollte, um die PC-Zeitzone des Benutzers zu bestimmen, und füge dann einige if-Anweisungen hinzu, um die Stunden anzuzeigen. Hier ist der Code, den ich verwenden, ich bin sicher, dass es ein sauberer Weg, dies aus zu schreiben, ich habe nichts dagegen Feedback:

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; 

Dann habe ich div id die beiden Elemente anzuzeigen:

<h1><span id="dayWeek"></span> Hours</h1> 
<div id="para1"></div> 

die Ausgabe sieht aus wie (basierend auf den aktuellen Tag und Zeit), da es sonntag ist es geschlossen ist:

sonntag Stunden
Derzeit

geschlossen
+0

Zeitzone! = Offset ... –

Verwandte Themen