Como ya les comenté son muy extensas las bibliotecas de funciones predefinidas que tiene PHP. En este post y muy resumidamente les expongo las funciones de calendario, que nos permite obtener múltiples configuraciones al respecto:
Función | Descripción | PHP |
cal_days_in_month() | Devuelve el número de días en un mes para un determinado año | 4 |
cal_from_jd() | Convierte a Julian un día de determinada fecha del calendario | 4 |
cal_info() | Devuelve información sobre un calendario | 4 |
cal_to_jd() | Convierte una fecha en díasJulian | 4 |
easter_date() | Devuelve el timestamp de Unix para la medianoche del día de Pascua de un año específico | 3 |
easter_days() | Devuelve el número de días a partir de 21 de marzo de Semana Santa de un año específico | 3 |
FrenchToJD() | Convierte una fecha calendario republicano francés a la fecha de Julian | 3 |
GregorianToJD() | Convierte una fecha gregoriana a una fecha Julian | 3 |
JDDayOfWeek() | Devuelve el día de una semana | 3 |
JDMonthName() | Devuelve un nombre del mes | 3 |
JDToFrench() | Convierte dia Julian en día republicano francés | 3 |
JDToGregorian() | Convierte fecha Julian a fecha Gregoriana | 3 |
jdtojewish() | Convierte un día Julian a un dia judío | 3 |
JDToJulian() | Convierte un dia Julian a una fecha del calendario juliano | 3 |
jdtounix() | Convierte un dia Julian a un timestamp de Unix | 4 |
JewishToJD() | Convierte una fecha judío a una fecha Julian | 3 |
JulianToJD() | Convierte una fecha del calendario juliano a una Julian | 3 |
unixtojd() | Convierte un timestamp de Unix a un día Julian | 4 |
Ejemplo:
<?php
$dias=unixtojd(mktime(0,0,0,9,11,2001));
print_r(cal_from_jd($dias,CAL_GREGORIAN));
echo"<br>";
print_r(cal_from_jd($dias,CAL_JULIAN));
echo"<br>";
print_r(cal_from_jd($dias,CAL_JEWISH));
echo"<br>";
print_r(cal_from_jd($dias,CAL_FRENCH));
?>
El resultado sería:
Array ( [date] => 9/11/2001 [month] => 9 [day] => 11 [year] => 2001 [dow] => 2 [abbrevdayname] => Tue [dayname] => Tuesday [abbrevmonth] => Sep [monthname] => September )
Array ( [date] => 8/29/2001 [month] => 8 [day] => 29 [year] => 2001 [dow] => 2 [abbrevdayname] => Tue [dayname] => Tuesday [abbrevmonth] => Aug [monthname] => August )
Array ( [date] => 13/23/5761 [month] => 13 [day] => 23 [year] => 5761 [dow] => 2 [abbrevdayname] => Tue [dayname] => Tuesday [abbrevmonth] => Elul [monthname] => Elul )
Array ( [date] => 0/0/0 [month] => 0 [day] => 0 [year] => 0 [dow] => 2 [abbrevdayname] => Tue [dayname] => Tuesday [abbrevmonth] => [monthname] => )