jdmonthname()
Aprende a usar cal_jdmonthname() en PHP para obtener el nombre del mes desde un número de día juliano. Sintaxis, constantes CAL_MONTH_* y ejemplos.
Función PHP: cal_jdmonthname()
La función cal_jdmonthname() de PHP devuelve el nombre del mes para un número de día juliano dado, en el sistema de calendario que se especifique. Esta página explica qué es un número de día juliano, la sintaxis de la función y sus constantes de modo, ejemplos ejecutables, qué devuelve y los problemas a tener en cuenta.
Aviso: La URL de este capítulo lleva históricamente el nombre
jdmonthname, pero la función moderna de PHP escal_jdmonthname(). El alias antiguojdmonthname()formaba parte de la familiajdque PHP eliminó en PHP 8.0 — usacal_jdmonthname()en su lugar.
Sintaxis
cal_jdmonthname(int $julian_day, int $mode): string$julian_day— un número de día juliano (un entero), producido normalmente porcal_to_jd()a partir de una fecha normal.$mode— el calendario desde el que se leerá el nombre del mes. Los valores aceptados son:
| Modo | Calendario | Estilo del nombre del mes |
|---|---|---|
CAL_MONTH_GREGORIAN_LONG | Gregoriano | Nombre completo (January) |
CAL_MONTH_GREGORIAN_SHORT | Gregoriano | Abreviado (Jan) |
CAL_MONTH_JULIAN_LONG | Juliano | Nombre completo |
CAL_MONTH_JULIAN_SHORT | Juliano | Abreviado |
CAL_MONTH_JEWISH | Judío | Nombre completo |
CAL_MONTH_FRENCH | República Francesa | Nombre completo |
Devuelve el nombre del mes como cadena de texto. La función requiere la extensión calendar, que debe estar habilitada en tu instalación de PHP.
¿Qué es un número de día juliano?
Antes de ver cómo funciona cal_jdmonthname(), es fundamental entender qué es un número de día juliano. Un número de día juliano es un conteo continuo de días que comenzó al mediodía del 1 de enero de 4713 a. C. Fue introducido por Joseph Scaliger en 1583 para facilitar los cálculos astronómicos y las comparaciones de fechas.
¿Qué hace la función cal_jdmonthname?
La función cal_jdmonthname() recibe dos parámetros: el número de día juliano y una constante de modo (uno de los valores CAL_MONTH_* de la tabla anterior) que selecciona el calendario y si se desea el nombre largo o corto. La función devuelve el nombre del mes correspondiente como cadena de texto.
Un punto de confusión habitual: el primer paso (cal_to_jd()) utiliza constantes de calendario como CAL_GREGORIAN, pero el modo que se pasa a cal_jdmonthname() debe ser una constante CAL_MONTH_*. No son intercambiables.
He aquí un ejemplo:
Ejemplo de la función cal_jdmonthname() en PHP
<?php
// Convert today's date to a Julian day count.
$jd = cal_to_jd(CAL_GREGORIAN, (int) date("m"), (int) date("d"), (int) date("Y"));
// Read the long Gregorian month name back from that Julian day.
echo "Today is " . cal_jdmonthname($jd, CAL_MONTH_GREGORIAN_LONG) . ".";
?>En un mes como marzo, esto imprime: Today is March.
¿Cómo usar la función cal_jdmonthname?
Para usar la función cal_jdmonthname() en tu código PHP, sigue estos pasos:
- Determina el número de día juliano para la fecha que te interesa. Puedes usar la función
cal_to_jd()para convertir una fecha gregoriana a un número de día juliano. - Llama a la función
cal_jdmonthname()pasando el número de día juliano y una constante de modo (p. ej.,CAL_MONTH_GREGORIAN_LONGoCAL_MONTH_JULIAN_LONG). - Usa el valor devuelto en tu código según lo necesites.
Nota: Las funciones antiguas de la extensión jd fueron eliminadas en PHP 8.0. Usa siempre las funciones cal_* para operaciones de calendario en PHP moderno.
Ejemplo
Así puedes leer tanto el nombre largo como el corto del mes para la misma fecha cambiando únicamente la constante de modo:
¿Cómo usar la función cal_jdmonthname() en PHP?
<?php
$jd = cal_to_jd(CAL_GREGORIAN, 3, 1, 2023); // March 1, 2023
echo "Long: " . cal_jdmonthname($jd, CAL_MONTH_GREGORIAN_LONG) . "\n"; // Long: March
echo "Short: " . cal_jdmonthname($jd, CAL_MONTH_GREGORIAN_SHORT) . "\n"; // Short: Mar
?>Dado que lo único que cambia es el modo, esta es la forma más clara de alternar entre nombres completos (March) y abreviaciones (Mar), o entre sistemas de calendario, sin necesidad de recalcular la fecha.
Nota sobre el calendario juliano: Pasar un modo
CAL_MONTH_JULIAN_*lee el mismo número de día juliano a través del calendario juliano más antiguo. Como el calendario juliano actualmente va unos 13 días por detrás del gregoriano, una fecha cercana al inicio o al final de un mes puede corresponder a un nombre de mes diferente respecto a la lectura gregoriana.
Ventajas de usar la función cal_jdmonthname
Usar la función cal_jdmonthname() puede facilitar y hacer más eficiente el trabajo con números de día juliano en PHP. Estas son algunas ventajas de esta función:
- Ahorra tiempo: En lugar de calcular manualmente el nombre del mes para un número de día juliano dado, simplemente puedes llamar a la función
cal_jdmonthname(). - Consistencia: La función garantiza que obtengas el nombre del mes correcto siempre, lo que reduce el riesgo de errores en tu código.
- Flexibilidad: La función te permite especificar el sistema de calendario, lo que te da mayor control sobre cómo tu código muestra la información en distintos calendarios históricos o regionales.
Problemas a tener en cuenta
- Usa un modo
CAL_MONTH_*, no una constante de calendarioCAL_*. PasarCAL_GREGORIAN(valor0) coincide conCAL_MONTH_GREGORIAN_LONG, peroCAL_JULIANno te dará los nombres de los meses del calendario juliano — usaCAL_MONTH_JULIAN_LONGen su lugar. - La extensión
calendardebe estar habilitada. En muchas instalaciones por defecto no lo está. Si obtienesCall to undefined function cal_jdmonthname(), habilitaext-calendaren la configuración de PHP. - Los alias
jd*antiguos han desaparecido.jdmonthname()y sus equivalentes fueron eliminados en PHP 8.0; usa siempre las funcionescal_*en código moderno.
Funciones relacionadas
cal_to_jd()— convierte una fecha de calendario en un número de día juliano (la entrada de esta función).cal_from_jd()— convierte un número de día juliano de vuelta en partes de fecha, incluido el número y el nombre del mes.cal_days_in_month()— número de días en un mes determinado.cal_info()— nombres de meses y días para un calendario completo de una sola vez.
Conclusión
La función cal_jdmonthname() es una herramienta práctica para los desarrolladores PHP que trabajan con números de día juliano: transforma un número de día en bruto en un nombre de mes legible por humanos en el sistema de calendario de tu elección. Combínala con cal_to_jd() para la conversión de fechas, recuerda pasar un modo CAL_MONTH_* y asegúrate de que la extensión calendar esté habilitada.