Ich habe Code, der überprüft, ob ein Benutzer innerhalb einer bestimmten Zeit (9.00 - 17.30 Uhr) von Montag bis Freitag fällt.Zeitzone auf GB für alle einstellen
function checkTime() {
var d = new Date(); // current time
var hours = d.getHours();
var mins = d.getMinutes();
var day = d.getDay();
return day >= 1
&& day <= 5
&& hours >= 9
&& (hours < 17 || hours === 17 && mins <= 30);
}
Dies funktioniert ordnungsgemäß, aber es überprüft die Zeit basierend auf der Browserzeit des Benutzers.
Was ich tun möchte, ist es zu überprüfen, 9.00 Uhr - 17.30 Uhr UK Time Only.
Also, wenn Sie die Website/Skript aus Amerika um 10.00 Uhr (UTC-7) sehen, würden Sie außerhalb der Zeit Checker sein, weil es 18.00 Uhr (UTC + 1) UK Zeit wäre.
Also ich denke, was ich versuche zu tun, ist die Benutzer Zeitzone und dann konvertieren Sie es in UK Zeit und dann mein checkTime()
Skript ausführen?
Verwandte: http://stackoverflow.com/questions/1091372/getting -die-Clients-Zeitzone-in-Javascript. Der knifflige Teil von dort wäre, die britische Zeit zu kennen, da wir das ganze Jahr hindurch Sommerzeit sparen, also könnte der Unterschied zu GMT bedeuten, dass Ihre berechnete Zeit um 1 Stunde abgelaufen ist. Ich würde empfehlen, dass Sie die britische Zeit von einem Server abrufen und dort überprüfen, anstatt eine clientseitige Lösung zu manipulieren. Vor allem, wenn Sie sich darauf verlassen, dass die Client-Uhr richtig eingestellt ist. –
@RoryMcCrossan: '+ new Date()' wird nicht von DST beeinflusst und gibt zufällig den Zeitstempel des Vereinigten Königreichs zurück ... – dandavis
Das OP möchte die Zeit in Großbritannien vom Kundendatum wissen. Alles, was Sie bekommen können, ist die Zeit in GMT (durch Subtraktion der Zeitzone Offset), während für einen Teil des Jahres Großbritannien läuft auf BST (dh GMT + 1) –