cal_from_jd()
La funzione cal_from_jd() converte un Conteggio dei Giorni Giuliani in una data del calendario scelto: Gregoriano, Giuliano, Ebraico o Repubblicano Francese.
Funzione PHP cal_from_jd()
La funzione cal_from_jd() converte un Conteggio dei Giorni Giuliani (un singolo intero) in una data nel calendario a scelta — Gregoriano, Giuliano, Ebraico o Repubblicano Francese. Restituisce un array associativo contenente anno, mese, giorno e diverse stringhe formattate utili (nome del giorno, nome del mese, giorno della settimana).
Questa pagina spiega cos'è un Conteggio dei Giorni Giuliani, come funziona cal_from_jd(), ogni chiave dell'array restituito e come si differenzia dalle altre funzioni calendario di PHP. L'estensione calendar deve essere abilitata affinché queste funzioni siano disponibili.
Sintassi
cal_from_jd(int $julian_day, int $calendar): array$julian_day— il Conteggio dei Giorni Giuliani da convertire. È un intero; un float viene troncato.$calendar— il calendario in cui convertire. Usare una delle costanti seguenti.
| Costante del calendario | Calendario |
|---|---|
CAL_GREGORIAN | Gregoriano (il calendario civile comune) |
CAL_JULIAN | Giuliano |
CAL_JEWISH | Ebraico |
CAL_FRENCH | Repubblicano Francese |
La funzione restituisce sempre un array — non esiste un valore di ritorno in caso di errore per un input intero valido.
Cos'è un Conteggio dei Giorni Giuliani?
Un Conteggio dei Giorni Giuliani (JDC) è un conteggio continuo di giorni interi che parte dal mezzogiorno UTC del 1° gennaio 4713 a.C. nel calendario giuliano prolessi. Poiché è un singolo intero crescente senza mesi né regole sugli anni bisestili, è ideale come punto neutro di conversione tra sistemi di calendario: si converte qualsiasi data di calendario in un JDC, poi si converte quel JDC nel calendario di destinazione.
L'astronomia, il software e la ricerca storica lo utilizzano esattamente per questo motivo — l'aritmetica delle date su un semplice intero è semplice e non ambigua.
Non confondere il Conteggio dei Giorni Giuliani con il calendario Giuliano. Il conteggio dei giorni è semplicemente un numero; il calendario Giuliano è il calendario più antico che Papa Gregorio XIII riformò nell'ottobre 1582 per creare il calendario Gregoriano che usiamo oggi.
L'array restituito da cal_from_jd()
Per un dato Conteggio dei Giorni Giuliani, cal_from_jd() restituisce un array associativo con le seguenti chiavi:
| Chiave | Descrizione |
|---|---|
date | La data come stringa mese/giorno/anno |
month | Numero del mese (1–12 per il Gregoriano) |
day | Giorno del mese |
year | Anno |
dow | Giorno della settimana come numero (0 = domenica) |
abbrevdayname | Nome del giorno abbreviato (es. Mon) |
dayname | Nome del giorno completo (es. Monday) |
abbrevmonth | Nome del mese abbreviato (es. Jan) |
monthname | Nome del mese completo (es. January) |
Esempio di base
Convertire un Conteggio dei Giorni Giuliani in una data Gregoriana e leggere i componenti:
<?php
$jd = gregoriantojd(3, 22, 2021); // JDC for March 22, 2021
$date = cal_from_jd($jd, CAL_GREGORIAN);
echo "Date string: " . $date['date'] . "\n";
echo "Year: " . $date['year'] . "\n";
echo "Month: " . $date['monthname'] . "\n";
echo "Day: " . $date['day'] . "\n";
echo "Weekday: " . $date['dayname'] . "\n";
?>Questo stampa:
Date string: 3/22/2021
Year: 2021
Month: March
Day: 22
Weekday: MondayEsaminare l'intero array
Se non si è sicuri di quali chiavi siano necessarie, si può visualizzare l'intero valore restituito:
<?php
$jd = gregoriantojd(12, 25, 2021); // Christmas 2021
print_r(cal_from_jd($jd, CAL_GREGORIAN));
?>Output:
Array
(
[date] => 12/25/2021
[month] => 12
[day] => 25
[year] => 2021
[dow] => 6
[abbrevdayname] => Sat
[dayname] => Saturday
[abbrevmonth] => Dec
[monthname] => December
)Errori comuni
- Intero, non un float con
.5. A differenza del Date Giuliano astronomico,cal_from_jd()si aspetta un intero a giorno intero. Passare un float ne tronca semplicemente la parte frazionaria. - L'estensione
calendardeve essere caricata. Se si ottiene "Call to undefined function cal_from_jd()", abilitare l'estensionecalendarnella propria build PHP. - Scegliere la costante del calendario corretta. Lo stesso JDC produce valori
anno/mese/giornodiversi perCAL_GREGORIANrispetto aCAL_JULIAN; passare sempre la costante che si intende effettivamente usare.
Funzioni correlate
cal_to_jd()— l'inverso: convertire una data di calendario in un Conteggio dei Giorni Giuliani.gregoriantojd()— ottenere un Conteggio dei Giorni Giuliani da una data Gregoriana.jdtogregorian()— convertire un Conteggio dei Giorni Giuliani in una stringa data Gregoriana.cal_info()— elencare i nomi di mesi e giorni e altri metadati per un calendario.jddayofweek()— ottenere il giorno della settimana per un Conteggio dei Giorni Giuliani.
Conclusione
cal_from_jd() trasforma un Conteggio dei Giorni Giuliani in un ricco array di componenti data per uno qualsiasi dei quattro calendari supportati da PHP. Combinato con cal_to_jd() (o gregoriantojd()), consente di convertire date tra sistemi di calendario instradando attraverso un singolo intero — il Conteggio dei Giorni Giuliani — come intermediario neutro.