W3docs

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 es cal_jdmonthname(). El alias antiguo jdmonthname() formaba parte de la familia jd que PHP eliminó en PHP 8.0 — usa cal_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 por cal_to_jd() a partir de una fecha normal.
  • $mode — el calendario desde el que se leerá el nombre del mes. Los valores aceptados son:
ModoCalendarioEstilo del nombre del mes
CAL_MONTH_GREGORIAN_LONGGregorianoNombre completo (January)
CAL_MONTH_GREGORIAN_SHORTGregorianoAbreviado (Jan)
CAL_MONTH_JULIAN_LONGJulianoNombre completo
CAL_MONTH_JULIAN_SHORTJulianoAbreviado
CAL_MONTH_JEWISHJudíoNombre completo
CAL_MONTH_FRENCHRepública FrancesaNombre 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:

  1. 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.
  2. 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_LONG o CAL_MONTH_JULIAN_LONG).
  3. 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:

  1. 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().
  2. Consistencia: La función garantiza que obtengas el nombre del mes correcto siempre, lo que reduce el riesgo de errores en tu código.
  3. 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 calendario CAL_*. Pasar CAL_GREGORIAN (valor 0) coincide con CAL_MONTH_GREGORIAN_LONG, pero CAL_JULIAN no te dará los nombres de los meses del calendario juliano — usa CAL_MONTH_JULIAN_LONG en su lugar.
  • La extensión calendar debe estar habilitada. En muchas instalaciones por defecto no lo está. Si obtienes Call to undefined function cal_jdmonthname(), habilita ext-calendar en la configuración de PHP.
  • Los alias jd* antiguos han desaparecido. jdmonthname() y sus equivalentes fueron eliminados en PHP 8.0; usa siempre las funciones cal_* 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.

Practice

Práctica
¿Qué devuelve cal_jdmonthname() en PHP?
¿Qué devuelve cal_jdmonthname() en PHP?
Was this page helpful?