Lücke zwischen zwei Zeitintervallen in UTC berechnen
Dieser Rechner ermittelt die verstrichene Zeit zwischen zwei ausdrücklich angegebenen ISO-Datumszeitintervallen.
Im Browser ausführen – kostenlos
Geben Sie Anfang und Ende jeweils mit UTC-Kennung oder numerischem Versatz an; vor dem Vergleich werden alle Werte auf UTC normiert. Überschneiden sich die Bereiche oder teilen sie eine Grenze, lautet das Ergebnis null. Zusätzlich erhalten Sie Millisekunden, Sekunden, eine ISO 8601-Dauer und die zeitliche Reihenfolge.
Geben Sie vollständige Intervalle mit Versatz ein
Übermitteln Sie vier Werte: Anfang und Ende des ersten Intervalls sowie Anfang und Ende des zweiten. Jeder Wert muss eine vollständige ISO 8601-Datumszeit sein, etwa <code>2026-07-25T09:00:00Z</code> oder <code>2026-07-25T12:00:00+01:00</code>. Die ausdrückliche Zone kennzeichnet den Zeitpunkt unabhängig von lokalen Einstellungen. Jeder Anfang muss vor oder auf seinem Ende liegen. Sekundenbruchteile mit bis zu drei Stellen werden unterstützt; reine Datumswerte, benannte Zonen, Schaltsekunden und fehlende Versätze werden abgelehnt. Nutzt Ihre Quelle Zonennamen, wandeln Sie diese vorher mit dem am jeweiligen Datum geltenden Versatz um.
So wird die UTC-Lücke bestimmt
Jeder Endpunkt wird mit Kalenderarithmetik in eine UTC-Position in Millisekunden umgerechnet. Endet das erste Intervall vor dem Beginn des zweiten, wird das erste Ende vom zweiten Anfang abgezogen; bei umgekehrter Reihenfolge wird die Rechnung gedreht. Andernfalls berühren oder überschneiden sich die Bereiche und die Lücke ist null. Daher entspricht 12:00 bei +01:00 genau 11:00Z. Die Antwort enthält Millisekunden, Sekunden, eine ISO 8601-Dauer und eine Reihenfolgeangabe. Aktuelle Uhrzeit, Gebietsschema, Netzwerk und Laufzeit-Datumsparser werden nicht verwendet.
Verwenden Sie das Ergebnis sicher in Zeitplänen
Das nicht negative Ergebnis misst Leerlauf zwischen Buchungen, Vorfällen oder Betriebszeiten. Prüfen Sie die Reihenfolgeangabe, wenn Sie das frühere Intervall benötigen. <code>overlap_or_touch</code> fasst Überschneidung und Berührung bewusst zusammen, da beide keine Zeitlücke lassen. Für Überschneidungsdauer, Geschäftszeiten oder die Trennung von Kontakt und Schnittmenge ist eine eigene Berechnung nötig. Im Browser läuft derselbe reine Löser wie über die API. API-Anfragen kosten $0.002. Bewahren Sie Millisekunden für Vergleiche unter einer Sekunde auf und verwenden Sie die ISO-Dauer für Austausch oder Anzeige.
Anwendungsfälle
Puffer zwischen Buchungen prüfen
Messen Sie die genaue freie Zeit zwischen Buchungen nach Normierung ihrer ausdrücklichen Zeitzonenversätze.
Ereignisabläufe untersuchen
Berechnen Sie die Ruhezeit zwischen Vorfällen aus Systemen mit unterschiedlichen UTC-Versätzen.
Zeitplanabstände validieren
Bestätigen Sie unabhängig von der Eingabereihenfolge genügend Abstand zwischen zwei Betriebsfenstern.
Häufige Fragen
Was geschieht bei einer Überschneidung?
Die Lücke ist null und die Reihenfolge overlap_or_touch, da keine Zeit zwischen den Bereichen liegt.
Was gilt, wenn ein Intervall genau beim Beginn des anderen endet?
Die Intervalle berühren sich; daher beträgt die zurückgegebene Lücke genau null.
Werden unterschiedliche Zeitzonenversätze unterstützt?
Ja. Jeder Endpunkt wird vor dem Vergleich von Z oder seinem numerischen Versatz auf UTC normiert.
Darf ich den Zeitzonenversatz weglassen?
Nein. Er verhindert, dass das Ergebnis von Server-, Browser- oder Gerätezeitzonen abhängt.
Wie genau ist das Ergebnis?
Ein- und Ausgabe unterstützen Millisekunden; die Lücke erscheint außerdem in Sekunden und als ISO 8601-Dauer.
Was kostet eine API-Anfrage?
Der veröffentlichte Grundpreis beträgt $0.002 je Anfrage; dieselbe deterministische Berechnung ist im Browser verfügbar.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/date/intervals-gap \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_start":"2026-07-25T09:00:00Z","first_end":"2026-07-25T10:30:00Z","second_start":"2026-07-25T12:00:00+01:00","second_end":"2026-07-25T13:00:00+01:00"}'const res = await fetch("https://api.kit.forhosting.com/date/intervals-gap", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_start": "2026-07-25T09:00:00Z",
"first_end": "2026-07-25T10:30:00Z",
"second_start": "2026-07-25T12:00:00+01:00",
"second_end": "2026-07-25T13:00:00+01:00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/intervals-gap",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_start": "2026-07-25T09:00:00Z",
"first_end": "2026-07-25T10:30:00Z",
"second_start": "2026-07-25T12:00:00+01:00",
"second_end": "2026-07-25T13:00:00+01:00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/intervals-gap", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_start":"2026-07-25T09:00:00Z","first_end":"2026-07-25T10:30:00Z","second_start":"2026-07-25T12:00:00+01:00","second_end":"2026-07-25T13:00:00+01:00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_start":"2026-07-25T09:00:00Z","first_end":"2026-07-25T10:30:00Z","second_start":"2026-07-25T12:00:00+01:00","second_end":"2026-07-25T13:00:00+01:00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/intervals-gap", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"first_start": "2026-07-25T09:00:00Z",
"first_end": "2026-07-25T10:30:00Z",
"second_start": "2026-07-25T12:00:00+01:00",
"second_end": "2026-07-25T13:00:00+01:00"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.intervals_gap",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 35 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |