W3docs

jdtojulian()

Aprende cómo la función PHP jdtojulian() convierte un número de día juliano a una cadena de fecha del calendario juliano, con ejemplos y la función inversa juliantojd().

La función PHP jdtojulian()

La función jdtojulian() convierte un número de día juliano (JDC) en una fecha del calendario juliano, devuelta como una cadena en el formato mes/día/año.

Es importante no confundir los dos significados de la palabra "juliano" aquí:

  • Número de día juliano (JDC) — un conteo continuo de días desde el mediodía en Tiempo Universal del 1 de enero de 4713 a. C. Es simplemente un número (por ejemplo, 2459459) y no tiene nada que ver con ningún calendario en particular. Se usa ampliamente en astronomía porque simplifica la aritmética de fechas.
  • Calendario juliano — el calendario introducido por Julio César en el 45 a. C., utilizado en toda Europa hasta que fue gradualmente reemplazado por el calendario gregoriano a partir de 1582. Hoy en día los dos calendarios difieren en 13 días.

jdtojulian() toma un número de día juliano y te indica a qué fecha corresponde ese número en el calendario juliano. Su contraparte, jdtogregorian(), hace lo mismo pero devuelve la fecha en el calendario gregoriano.

Sintaxis

jdtojulian(int $julian_day): string

Acepta un parámetro — el número de día juliano como entero — y devuelve la fecha correspondiente del calendario juliano como una cadena "mes/día/año". Si la entrada es 0 (un día juliano inválido), devuelve "0/0/0".

Convertir un número de día juliano a una fecha del calendario juliano

<?php

$jdc = 2459459;
$julianDate = jdtojulian($jdc);

echo $julianDate; // Outputs: 8/19/2021

El valor devuelto es una cadena, por lo que puedes dividirla cuando necesites las partes individuales:

<?php

[$month, $day, $year] = explode('/', jdtojulian(2459459));

echo "Year: $year, Month: $month, Day: $day";
// Outputs: Year: 2021, Month: 8, Day: 19

Por qué difieren las fechas juliana y gregoriana

El mismo número de día juliano se corresponde con una etiqueta diferente en cada calendario. Para 2459459:

<?php

echo jdtojulian(2459459);    // Outputs: 8/19/2021  (Julian calendar)
echo "\n";
echo jdtogregorian(2459459); // Outputs: 9/1/2021   (Gregorian calendar)

La diferencia de 13 días entre 8/19 y 9/1 es exactamente el desfase actual entre los calendarios juliano y gregoriano — ambas filas describen el mismo instante en el tiempo.

Convertir una fecha del calendario juliano de vuelta a un número de día juliano

Para hacer el proceso inverso — de una fecha del calendario juliano de vuelta a un número de día juliano — usa juliantojd(). Toma el mes, el día y el año y devuelve un entero:

<?php

$jdc = juliantojd(8, 19, 2021);

echo $jdc; // Outputs: 2459459

Dado que las dos funciones son inversas, un viaje de ida y vuelta devuelve la fecha original:

<?php

echo jdtojulian(juliantojd(8, 19, 2021)); // Outputs: 8/19/2021

¿Cuándo usaría esto?

Raramente necesitas el calendario juliano para fechas cotidianas de aplicaciones — para eso, prefiere las APIs DateTime y date() de PHP, que trabajan con el calendario gregoriano. jdtojulian() es útil cuando:

  • Trabajas con registros históricos fechados antes de la reforma gregoriana de 1582 (o en países que la adoptaron mucho más tarde).
  • Interactúas con datos astronómicos o genealógicos que almacenan fechas como números de día juliano.
  • Conviertes entre sistemas de calendarios donde el número de día juliano actúa como pivote neutro — por ejemplo, gregoriantojd() → almacenar el entero → jdtojulian().

Nota: La extensión calendar debe estar habilitada para que estas funciones estén disponibles. Viene incluida con PHP y compilada por defecto en la mayoría de las compilaciones.

Conclusión

La función jdtojulian() convierte un número de día juliano en una cadena de fecha del calendario juliano, mientras que juliantojd() realiza la operación inversa. Forman un par equivalente a jdtogregorian() y gregoriantojd(), razón por la cual el mismo número de día produce dos etiquetas de calendario diferentes. Para más detalles, consulta la documentación oficial de jdtojulian() y juliantojd().

Práctica

Práctica
¿Cuál es la función de jdtojulian() en PHP?
¿Cuál es la función de jdtojulian() en PHP?
Was this page helpful?