Zeit innerhalb eines bestimmten Zeitfensters

Du bist hier:

Mit diesem Skript kannst du prüfen, ob die aktuelle Uhrzeit innerhalb eines bestimmten Zeitfensters liegt. Dieses Skript arbeitet auch tagübergreifend und ermittelt, ob das Ende des Zeitfensters auf den nachfolgenden Tag fällt.

Skript

/*
 * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
 *
 * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
 *
 * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Shelly Geräte.
 * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
 * und Performance entwickelt.
 * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
 *
 * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
 * https://www.kreyenborg.koeln
 * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
 * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
 * 
 * Ansprüche gegenüber Dritten bestehen nicht. 
 * 
 * Skript Name:		Zeitbereich
 * Skript Version:	1.0
 * Erstell-Datum:	16. April 2020
 * 
 */
function Zeitbereich(startTime,endTime) {
    // Aktuelles Datum abholen
    var currentDate = new Date();

    // Startdatum formatieren   
    var startDate = new Date(currentDate.getTime());
    startDate.setHours(startTime.split(":")[0]);
    startDate.setMinutes(startTime.split(":")[1]);
    if (startTime.split(":")[2]) {
        startDate.setSeconds(startTime.split(":")[2]);
    }

    // Enddatum formatieren
    var endDate = new Date(currentDate.getTime());
    endDate.setHours(endTime.split(":")[0]);
    endDate.setMinutes(endTime.split(":")[1]);
    if (endTime.split(":")[2]) {
        endDate.setSeconds(endTime.split(":")[2]);
    }

    //Setze Zeitbereich zurück
    var valid_time_frame = false
    
    if (endTime > startTime) {
        // Zeitbereich ist im gleichen Tag
        valid_time_frame = (currentDate >= startDate && currentDate <= endDate) ? true : false;
    } else {
        // Zeitbereich endet im nächsten Tag
        valid_time_frame = (currentDate >= endDate && currentDate <= startDate) ? false : true;
    }
    return valid_time_frame;
}

Anwendung mit Stunde, Minute und Sekunde

if (Zeitbereich("05:00:00","04:30:00")) {
    // Zeitbereich zwischen 5 Uhr morgens und 4:30 Uhr des nächsten Morgens
    // Hier kannst Du etwas ausführen lassen, was zu dem Zeitraum passt.
}

Anwendung mi Stunde und Minute

if (Zeitbereich("05:00","04:30")) {
    // Zeitbereich zwischen 5 Uhr morgens und 4:30 Uhr des nächsten Morgens
    // Hier kannst Du etwas ausführen lassen, was zu dem Zeitraum passt.
}
Zurück Intervallschaltung – Stündlich
Weiter Zeitsteuerung zu bestimmter Uhrzeit

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.