Sumar horas a una fecha-hora
Desplace una fecha y hora un número de horas y lea el resultado en UTC: las 10:00 UTC del 1 de marzo de 2024 más 5 horas son las 15:00 UTC del mismo día. También admite horas negativas y fraccionarias. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha y hora
- 2024-03-01T10:00:00Z
- Horas
- 5
- Resultado
- 2024-03-01T15:00:00Z
- Año
- 2 024
- Mes
- 3
- Día
- 1
Esta herramienta acepta una fecha-hora ISO-8601 explícita —hora completa con Z o un desfase numérico, o una cadena solo de fecha tratada como medianoche UTC— más un desfase finito de horas que puede ser positivo, negativo, fraccionario o cero. Convierte la base a segundos de época UTC con aritmética gregoriana pura, suma round(hours × 3600) segundos enteros y reconstruye un resultado UTC normalizado como año-mes-día T hora-minuto-segundo Z. Los días de calendario imposibles y las cadenas mal formadas fallan con un error de validación claro en lugar de envolver al mes siguiente.
Cómo funciona la suma de horas en UTC sin reloj del sistema
Comience con una fecha-hora base explícita escrita en la forma internacional ISO para que todo cliente coincida en el mismo año, mes, día y campos de reloj opcionales. Cuando solo se suministra una fecha de calendario, trátala como medianoche en Tiempo Universal Coordinado. Cuando hay hora, acepte segundos fraccionarios opcionales (truncados a segundos enteros) y bien una Z final para UTC o un desfase numérico de horas y minutos con signo más o menos, que se resta al convertir a tiempo absoluto.
Valide que el día civil exista bajo las reglas de bisiesto gregorianas —el 29 de febrero es legal solo cuando el año es divisible por cuatro, salvo que los años de siglo también deban serlo por cuatrocientos— y que hora, minuto y segundo estén en sus rangos habituales.
Convierta el triple civil a un serial de día con el algoritmo days-from-civil de Howard Hinnant, multiplique por ochenta y cuatro mil seiscientos segundos, sume la hora local del día y reste los minutos de desfase por sesenta para obtener segundos de época UTC. Añada el desfase de horas convertido como round(hours × 3600). Reconstruya la fecha civil con civil-from-days, separe hora, minuto y segundo del resto de segundos del día y formatee una cadena cuatro-dos-dos T dos-dos-dos Z.
Dónde aparecen las calculadoras de sumar horas a una fecha-hora
Los equipos de operaciones convierten la hora de creación de un ticket de soporte en plazos de primera respuesta sumando ventanas contractuales de horas sin inventar una biblioteca de calendario completa. Los ingenieros de datos materializan columnas de eventos diferidos para pipelines que se disparan N horas después de una marca de ingestión guardada como texto ISO. Los responsables de producto prototipan ventanas de prueba, previsualizaciones de TTL de caché y textos de caducidad de sesión con los mismos números que enviará su backend.
Si más adelante necesita sumar días de calendario sin reloj, calendarios laborables que omitan fines de semana, desgloses de cuenta atrás entre dos instantes o conversión pura entre horas y minutos, trátelos como intenciones de búsqueda y páginas distintas en lugar de sobrecargar esta página de sumar horas a una fecha-hora: resuelven consultas diferentes aunque parte de la aritmética se parezca por debajo.
Qué puede hacer con ella
SLA y plazos de respuesta
Sume ventanas contractuales de respuesta (por ejemplo cuatro, ocho o veinticuatro horas) a una marca ISO explícita del ticket y guarde un plazo UTC estable.
Columnas de retraso en pipelines
Materialice horarios de eventos diferidos como datetime ISO base más un desfase de horas configurado para trabajos ETL, cachés y reintentos programados.
Preguntas frecuentes
¿Qué significa sumar horas a una fecha-hora?
Significa tomar una marca ISO-8601 explícita, convertirla a UTC solo desde la cadena, avanzar o retroceder un número finito de horas y devolver la fecha-hora UTC desplazada.
¿Utiliza la zona horaria local de mi equipo?
No. Toda la matemática es UTC derivada solo de la cadena de entrada. Los desfases numéricos del input se aplican una vez al convertir a tiempo absoluto; el resultado siempre se emite con una Z final.
¿Puedo usar horas fraccionarias?
Sí. Valores como 1.5 se convierten en round(1.5 × 3600) = 5400 segundos enteros. Se rechazan valores no finitos y magnitudes absurdas.
¿Qué formatos de fecha-hora se aceptan?
Solo fecha YYYY-MM-DD (medianoche UTC), o fecha-hora completa con segundos y fracción opcionales, terminando en Z o un desfase numérico ±HH:mm. Se rechazan formas sueltas sin anchos de dígito fijos.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_hours",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Desplazar una marca de tiempo un número fijo de horas es una tarea cotidiana en API, planificadores de trabajos, relojes de SLA e importaciones de hojas de cálculo; sin embargo, las zonas horarias del anfitrión y el horario de verano convierten una suma aparentemente trivial en una fuente de pruebas frágiles.
Qué envía usted y qué recibe a cambio
Comprobaciones clásicas: sumar cinco horas a las diez UTC para llegar a las quince el mismo día, sumar veinticuatro horas para cruzar un día de calendario, restar tres horas de una marca matutina, convertir una entrada con desfase más-cero-dos en un resultado puro Z tras el cálculo, y rechazar una base como el 29 de febrero en un año común. Envíe dos campos obligatorios: datetime como cadena ISO-8601, por ejemplo dos mil veinticuatro guion cero tres guion cero uno T diez dos puntos cero cero dos puntos cero cero Z, y hours como número finito como cinco, cero, menos tres o uno punto cinco. Se aceptan los alias date, dt, timestamp y ts para la cadena base. Campos ausentes, datetime que no sea cadena, cadenas que no encajen en la forma ISO, desfases de horas no finitos, días de calendario imposibles y años de resultado fuera de rango fallan con invalid_input y no se cobran. Si tiene éxito, la respuesta repite el datetime base recortado, el desfase hours aplicado, la cadena ISO UTC resultante tras la suma, el año, mes, día, hora, minuto y segundo numéricos del resultado, el epoch_seconds del resultado, el entero delta_seconds sumado, hours_added y una fórmula breve que documenta la reconstrucción UTC. El precio de las llamadas API correctas es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepago.
Dónde aparecen las calculadoras de sumar horas a una fecha-hora
Como la capacidad es un motor parse puro, el precio de la API es la base publicada de $0.002 por elemento correcto y la validación fallida no consume saldo.
Casos de integración
Fixtures de QA alrededor de medianoche
Genere marcas de tiempo esperadas deterministas que crucen límites de día y de bisiesto en pruebas de regresión sin depender del reloj del anfitrión.