Distanza tra due intervalli di tempo in UTC
Questo calcolatore misura il tempo trascorso che separa due intervalli espliciti di data e ora ISO.
Esegui gratis nel browser
Lei indica inizio e fine di ciascuno con UTC o uno scarto numerico; prima del confronto, ogni valore viene normalizzato in UTC. Se gli intervalli si sovrappongono o condividono un confine, il risultato è zero. Sono forniti anche millisecondi, secondi, una durata ISO 8601 e l’ordine cronologico.
Inserisca intervalli completi con scarti espliciti
Fornisca quattro valori: inizio e fine del primo intervallo, poi inizio e fine del secondo. Ogni valore deve essere una data e ora ISO 8601 completa, come <code>2026-07-25T09:00:00Z</code> o <code>2026-07-25T12:00:00+01:00</code>. La zona esplicita identifica l’istante senza dipendere dalle impostazioni locali. Ogni inizio deve essere precedente o uguale alla relativa fine. Sono ammesse frazioni di secondo fino a tre cifre; vengono respinte date senza ora, zone con nome, secondi intercalari e scarti omessi. Se la Sua fonte usa zone con nome, le converta prima nello scarto corretto per la data di ciascun estremo.
Comprenda come viene calcolata la distanza UTC
Ogni estremo viene convertito tramite aritmetica del calendario in una posizione UTC in millisecondi. Se il primo intervallo termina prima dell’inizio del secondo, si sottrae la prima fine dal secondo inizio; nell’ordine opposto si inverte l’operazione. Altrimenti gli intervalli si toccano o sovrappongono e la distanza è zero. Pertanto 12:00 con +01:00 equivale a 11:00Z. La risposta comprende millisecondi, secondi, durata ISO 8601 ed etichetta d’ordine. Il metodo non usa ora corrente, impostazioni locali, rete o parser di date dell’ambiente.
Usi il risultato in sicurezza nelle pianificazioni
Il risultato non negativo misura l’inattività tra prenotazioni, incidenti o periodi operativi. Controlli l’etichetta d’ordine per sapere quale intervallo viene prima. <code>overlap_or_touch</code> unisce intenzionalmente sovrapposizione e contatto, perché in entrambi i casi non rimane tempo tra gli intervalli. Per misurare la sovrapposizione, le ore lavorative o distinguere contatto e intersezione, scelga un calcolo dedicato. Il browser esegue lo stesso risolutore puro dell’API. Le richieste API costano $0.002. Conservi i millisecondi per confronti sotto il secondo e usi la durata ISO per scambio o visualizzazione.
Casi d'uso
Verificare i margini tra prenotazioni
Misuri il tempo libero esatto tra prenotazioni dopo aver normalizzato gli scarti orari espliciti.
Analizzare cronologie di eventi
Calcoli il silenzio tra incidenti registrati da sistemi con scarti UTC differenti.
Convalidare la separazione degli orari
Verifichi che due finestre operative lascino tempo sufficiente, indipendentemente dall’ordine di input.
Domande frequenti
Cosa accade se gli intervalli si sovrappongono?
La distanza è zero e l’ordine è overlap_or_touch, perché non esiste tempo tra gli intervalli.
Cosa accade se uno termina quando inizia l’altro?
Gli intervalli si toccano, quindi la distanza restituita è esattamente zero.
Sono supportati scarti di fuso differenti?
Sì. Ogni estremo viene normalizzato da Z o dallo scarto numerico esplicito a UTC prima del confronto.
Posso omettere lo scarto del fuso orario?
No. È necessario affinché il calcolo non dipenda dalla zona del server, del browser o del dispositivo.
Quanto è preciso il risultato?
Input e output supportano i millisecondi; la distanza è restituita anche in secondi e come durata ISO 8601.
Quanto costa una richiesta API?
Il prezzo base pubblicato è $0.002 per richiesta; lo stesso calcolo deterministico è disponibile nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"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"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.intervals_gap",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 35 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |