Aggiungere ore a un datetime
Sposti una data e ora di un certo numero di ore e legga il risultato in UTC: le 10:00 UTC del 1° marzo 2024 più 5 ore danno le 15:00 UTC dello stesso giorno. Valgono anche ore negative e frazionarie. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Data e ora
- 2024-03-01T10:00:00Z
- Ore
- 5
- Risultato
- 2024-03-01T15:00:00Z
- Anno
- 2024
- Mese
- 3
- Giorno
- 1
Converte la base in secondi d’epoca UTC con aritmetica gregoriana pura, aggiunge round(hours × 3600) secondi interi e ricostruisce un risultato UTC normalizzato come anno-mese-giorno T ora-minuto-secondo Z. Giorni di calendario impossibili e stringhe malformate falliscono con un errore di validazione chiaro invece di avvolgersi al mese successivo.
Come funziona l’addizione di ore in UTC senza orologio di sistema
Inizi con un datetime di base esplicito scritto nella forma internazionale ISO affinché ogni client concordi sullo stesso anno, mese, giorno e campi orologio opzionali. Quando viene fornita solo una data di calendario, la tratti come mezzanotte in Tempo universale coordinato. Quando è presente l’ora, accetti secondi frazionari opzionali (troncati a secondi interi) e una Z finale per UTC oppure un offset numerico ore-minuti con segno, sottratto nella conversione a tempo assoluto.
Validare che il giorno civile esista secondo le regole del bisestile gregoriano —il 29 febbraio è legale solo se l’anno è divisibile per quattro, salvo i secoli che devono esserlo anche per quattrocento— e che ora, minuto e secondo restino nei loro intervalli usuali. Converta la tripla civile in seriale di giorno con l’algoritmo days-from-civil di Howard Hinnant, moltiplichi per ottantaquattromilaseicento secondi, aggiunga l’ora locale del giorno e sottragga i minuti di offset per sessanta per ottenere i secondi d’epoca UTC. Aggiunga l’offset di ore convertito come round(hours × 3600).
Ricostruisca la data civile con civil-from-days, separi ora, minuto e secondo dal residuo di secondi del giorno e formatti una stringa quattro-due-due T due-due-due Z.
Dove compaiono le calcolatrici per aggiungere ore a un datetime
I team operativi convertono l’orario di creazione di un ticket di supporto in scadenze di prima risposta aggiungendo finestre contrattuali di ore senza inventare un’intera libreria di calendario. Gli ingegneri dei dati materializzano colonne di eventi ritardati per pipeline che scattano N ore dopo un timestamp di ingestione salvato come testo ISO. I product manager prototipano finestre di prova, anteprime di TTL della cache e testi di scadenza sessione con gli stessi numeri che invierà il backend.
Casi d'uso
SLA e scadenze di risposta
Aggiunga finestre contrattuali di risposta (ad esempio quattro, otto o ventiquattro ore) a un timestamp ISO esplicito del ticket e memorizzi una scadenza UTC stabile.
Colonne di ritardo nelle pipeline
Materializzi orari di eventi ritardati come datetime ISO base più un offset di ore configurato per job ETL, cache e ritentativi programmati.
Domande frequenti
Usa il fuso orario locale del mio computer?
No. Tutta la matematica è UTC derivata solo dalla stringa di input. Gli offset numerici nell’input si applicano una volta nella conversione a tempo assoluto; il risultato è sempre emesso con una Z finale.
Posso usare ore frazionarie?
Sì. Valori come 1.5 diventano round(1.5 × 3600) = 5400 secondi interi. Valori non finiti e magnitudini assurde vengono rifiutati.
Quali formati datetime sono accettati?
Solo data YYYY-MM-DD (mezzanotte UTC), oppure datetime completo con secondi e frazione opzionali, che termina in Z o un offset numerico ±HH:mm. Forme libere senza larghezze di cifre fisse sono rifiutate.
Quanto costa?
Lo strumento nel browser è gratuito e gira in locale.
Il risultato è sempre in UTC?
Sì. Se l'orario di partenza indica uno scarto rispetto a UTC, viene convertito prima del calcolo; una data senza ora vale come mezzanotte UTC, e il risultato esce sempre in UTC.
Strumenti correlati
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/add-hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-03-01T10:00:00Z","hours":5}'const res = await fetch("https://api.kit.forhosting.com/date/add-hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-03-01T10:00:00Z","hours":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-03-01T10:00:00Z","hours":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-hours", 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
{
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_hours",
"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.
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. |
Note tecniche
Spostare un timestamp di un numero fisso di ore è un compito quotidiano in API, scheduler di job, orologi SLA e import di fogli di calcolo; tuttavia i fusi dell’host e l’ora legale trasformano una somma apparentemente banale in fonte di test fragili. Questo strumento accetta un datetime ISO-8601 esplicito —ora completa con Z o offset numerico, oppure solo data trattata come mezzanotte UTC— più un offset finito di ore positivo, negativo, frazionario o zero.
Cosa invia e cosa riceve in risposta
Controlli classici: aggiungere cinque ore alle dieci UTC per raggiungere le quindici lo stesso giorno, aggiungere ventiquattro ore per attraversare un giorno di calendario, sottrarre tre ore da un timestamp mattutino, convertire un input con offset più-zero-due in risultato puro Z dopo il calcolo, e rifiutare una base come il 29 febbraio in un anno comune. Invii due campi obbligatori: datetime come stringa ISO-8601, ad esempio duemilaventiquattro trattino zero tre trattino zero uno T dieci due-punti zero zero due-punti zero zero Z, e hours come numero finito quale cinque, zero, meno tre o uno punto cinque. Sono accettati gli alias date, dt, timestamp e ts per la stringa base. Campi assenti, datetime non stringa, stringhe fuori forma ISO, offset di ore non finiti, giorni di calendario impossibili e anni di risultato fuori intervallo falliscono con invalid_input e non vengono addebitati. In caso di successo la risposta ripete il datetime base tagliato, l’offset hours applicato, la stringa ISO UTC risultante dopo l’addizione, l’anno, mese, giorno, ora, minuto e secondo numerici del risultato, epoch_seconds del risultato, l’intero delta_seconds aggiunto, hours_added e una breve formula che documenta la ricostruzione UTC. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano il saldo prepagato.
Dove compaiono le calcolatrici per aggiungere ore a un datetime
Poiché la capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo. Se in seguito le servono addizioni di giorni di calendario senza orologio, calendari lavorativi che saltano i fine settimana, countdown tra due istanti o conversione pura tra ore e minuti, li tratti come intenti di ricerca e landing distinti invece di sovraccaricare questa pagina di aggiunta ore a un datetime: risolvono query diverse anche se parte dell’aritmetica sembra simile sotto il cofano.
Casi di integrazione
Fixture QA intorno a mezzanotte
Generi timestamp attesi deterministici che attraversano confini di giorno e bisestile nei test di regressione senza dipendere dall’orologio host.
Domande tecniche
Cosa significa aggiungere ore a un datetime?
Significa prendere un timestamp ISO-8601 esplicito, convertirlo in UTC dalla sola stringa, avanzare o indietreggiare di un numero finito di ore e restituire il datetime UTC spostato.