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): stringAcepta 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/2021El 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: 19Por 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: 2459459Dado 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
calendardebe 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().