Calculadora de fases lunares
Escriba una fecha y vea la fase de la Luna: el 1 de enero de 2026 la Luna tiene 12,421 días, está iluminada al 93,9 % y se encuentra en gibosa creciente. El cálculo usa el mes lunar medio de 29,530588853 días. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha
- 2026-01-01
- Edad lunar (días)
- 12,421
- Iluminación (%)
- 93,9
- Fase
- Gibosa creciente
- Ciclo lunar (días)
- 29,530588853
Dada una fecha ISO, devuelve la edad de la Luna en días desde una luna nueva conocida, su fracción iluminada como porcentaje y la fase con nombre, usando el mes sinódico medio de 29,530588853 días.
Cómo se calcula la fase de la Luna
La Luna pasa de nueva a llena y vuelve a nueva en un mes sinódico medio de 29,530588853 días. La calculadora cuenta los días entre una luna nueva conocida y su fecha, evaluada a las 12:00 UTC, y se queda con el resto dentro del ciclo actual. Ese resto es la edad de la Luna. La parte iluminada del disco sigue una curva suave de esa edad, cercana al 0 % en luna nueva y con su máximo del 100 % cerca de la luna llena. El 1 de enero de 2026 la edad es de 12,421 días y la iluminación, del 93,9 %.
Para qué sirve el resultado y cuáles son sus límites
El nombre de la fase sale de dividir el ciclo en ocho tramos de longitud parecida, desde la luna nueva, pasando por las fases creciente, de cuarto y gibosa, hasta volver al inicio. Por eso es una fuente fiable para calendarios, almanaques, paneles e iconos lunares para cada día del mes. Se trata de una aproximación de fase media que ignora que la órbita de la Luna es algo elíptica, así que la fase y la iluminación pueden desviarse en torno a un día. Para posiciones astronómicas precisas conviene usar efemérides propiamente dichas.
Qué puede hacer con ella
Calendarios y widgets de almanaque
Muestre la fase y la iluminación de cada día de un mes, gobernando los iconos lunares con la fase con nombre determinista.
Preguntas frecuentes
¿Qué periodo sinódico usa?
El mes sinódico medio de 29,530588853 días, anclado a una luna nueva de referencia el 2000-01-06 a las 18:14 UTC.
¿Qué precisión tienen la fase y la iluminación?
Es un modelo de fase media que ignora la excentricidad orbital, de modo que los resultados son exactos hasta aproximadamente un día, ideal para calendarios y cuadros de mando.
¿Cuáles son las ocho fases de la Luna en orden?
Luna nueva, creciente, cuarto creciente, gibosa creciente, luna llena, gibosa menguante, cuarto menguante y menguante. Cada una ocupa más o menos un octavo del mes lunar, y tras la última el ciclo vuelve a empezar en luna nueva.
¿Qué significa la edad de la Luna?
Es el número de días transcurridos desde la última luna nueva, de 0 a unos 29,53 antes de que el ciclo se reinicie. El 1 de enero de 2026 la edad es de 12,421 días, lo que sitúa a la Luna en fase gibosa creciente.
¿A qué hora del día se calcula la fase?
Cada fecha se evalúa a las 12:00 UTC, el mediodía en tiempo universal. Así hay una sola respuesta por fecha y un calendario muestra la misma fase e iluminación se abra donde se abra.
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/dev/moon-phase \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/moon-phase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/moon-phase",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/moon-phase", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/moon-phase", 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
{
"date": "2026-01-01"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.moon_phase",
"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
El modelo de edad por mes sinódico
La iluminación se deriva de esa edad como (1 - cos(2*pi*age/SYNODIC_DAYS)) / 2 * 100, una curva suave que alcanza el 100 % cerca de la luna llena y cerca del 0 % en la luna nueva. Evalúa cada fecha a las 12:00 UTC, toma los milisegundos transcurridos desde la época, divide entre 86400000 para obtener los días y reduce ese valor módulo la longitud sinódica; un resto negativo se ajusta hacia adelante sumando un periodo completo, de modo que age_days está siempre en [0, 29.53).
Cómo se elige el nombre de la fase
Esta es una aproximación de fase media: ignora la excentricidad orbital de la Luna, de modo que la fase con nombre y la iluminación son exactas hasta aproximadamente un día, lo que sobra para calendarios, cuadros de mando y contenido pero no para trabajo de efemérides preciso. La cadena de la fase se elige comparando age_days con ocho umbrales fijos, cada uno de aproximadamente un octavo del mes sinódico. Las edades por debajo de 1.84566 son 'new', luego 'waxing_crescent' por debajo de 5.53699, 'first_quarter' por debajo de 9.22831, 'waxing_gibbous' por debajo de 12.91963, 'full' por debajo de 16.61096, 'waning_gibbous' por debajo de 20.30228, 'last_quarter' por debajo de 23.99361 y 'waning_crescent' por debajo de 27.68493; cualquier valor igual o superior a ese último límite vuelve a 'new'. Como la edad para 2026-01-01 es 12.421, cae en la banda waxing_gibbous.
Validación de la fecha y redondeo
El parámetro opcional decimals tiene un valor por defecto de 3 y debe ser un entero de 0 a 6. age_days se redondea half-up a esa precisión, mientras que illumination_percent se redondea siempre a un único decimal con independencia de decimals. La respuesta también reproduce la fecha de entrada y la constante synodic_days, y cualquier valor intermedio no finito lanza invalid_input.
Casos de integración
Fotografía y planificación de exteriores
Consulte illumination_percent a lo largo de un rango de fechas para encontrar las noches más oscuras o más brillantes para astrofotografía o trabajo de campo.
Automatización de contenido y programación
Procese fechas por lotes a través de la API para etiquetar publicaciones, eventos o guías de pesca o jardinería con la fase lunar correcta.
Preguntas técnicas
¿Qué formatos de fecha se aceptan?
Solo cadenas estrictas AAAA-MM-DD. Las fechas imposibles como 2026-02-30 se rechazan como invalid_input en lugar de reajustarse.
¿Cuáles son los posibles valores de fase?
new, waxing_crescent, first_quarter, waxing_gibbous, full, waning_gibbous, last_quarter y waning_crescent, elegidos por umbrales de edad.
¿Es gratuito y cuánto cuesta la API?
El widget de la página es gratuito (tier A) y ejecuta el mismo núcleo determinista; las llamadas a la API se facturan por solicitud correcta desde $0.002.