2017-05-03 2 views
0

Ich bin auf der Suche nach Hilfe, um zu sehen, ob es eine einfache schnelle Möglichkeit gibt, ein JS-Ereignis basierend auf der Tageszeit einer Website im Browser ausgelöst wird.Firing Javascript-Ereignis basierend auf der Tageszeit

Im Wesentlichen, was ich tun möchte, ist zwischen 5 pm-5am der lokalen Zeitzone des Benutzers haben dieses Skript Feuer. Das Skript ist derzeit mit einer Schaltfläche verbunden, die die Klasse des Seitenkörpers einfach in den "Nachtmodus" umschaltet. Ich möchte, dass die beiden in Harmonie arbeiten, basierend auf der Zeit automatisieren und mit der Schaltfläche überschreiben können, wenn Sie das dunkle oder helle Thema haben wollen.

function toggleClass(element, className) { 
if (!element || !className) { 
    return; 
} 
var classString = element.className, 
    nameIndex = classString.indexOf(className); 
if (nameIndex == -1) { 
    classString += ' ' + className; 
} else { 
    classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length); 
} 
element.className = classString; 
} 

document.getElementById('day-btn').addEventListener('click', function() { 
    toggleClass(document.getElementById('body'), 'night'); 
}); 

https://jsfiddle.net/simpson/57xe333n/2/

Antwort

1
var time = new Date(); 
element = document.getElementById('body'); 
className = "night"; 
console.log(time.getHours()); 
if(time.getHours() > 17 || time.getHours < 5) { 
    if (!element || !className) { 
     return; 
    } 
    var classString = element.className, 
     nameIndex = classString.indexOf(className); 
    if (nameIndex == -1) { 
     classString += ' ' + className; 
    } else { 
     classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length); 
    } 
    element.className = classString; 
} 

Dieses verwendet JS ist in Datum Funktionalitäten gebaut, die aus dem System ziehen. Es führt eine getHours() -Funktion aus, die ein int (0-23) zurückgibt. Die if-Anweisung (time.getHours() > 17 || time.getHours < 5) führt dann nur den Code aus und ändert das Thema, wenn es nach 17 Uhr oder vor 5 Uhr morgens ist. Hoffe, das kann dich beginnen.