Start · Sprachen · PHP · Referenz · gregoriantojd

gregoriantojd

Funktion

Wandelt ein Datum aus dem Gregorianischen Kalender in eine Julianische Tageszahl (Julian Day Number) um.

seit PHP 4.0.0 Kategorie: date

Signatur

gregoriantojd(int $month, int $day, int $year): int

Beschreibung

Die Funktion gregoriantojd() konvertiert ein gregorianisches Datum (bestehend aus Monat, Tag und Jahr) in die entsprechende Julianische Tageszahl (JDN – Julian Day Number). Die Julianische Tageszahl ist eine fortlaufende Ganzzahl, die die Anzahl der Tage seit dem 1. Januar 4713 v. Chr. (Julianischer Kalender, 12-Uhr-Mittag) zählt und in der Astronomie sowie Datumsarithmetik weit verbreitet ist.

Der gültige Bereich für gregorianische Umrechnungen liegt zwischen dem 25. November 4714 v. Chr. und dem 31. Dezember 9999 n. Chr. Für Jahre vor Christus sind negative Jahreszahlen zu verwenden, wobei das Jahr 0 dem Jahr 1 v. Chr. entspricht.

Die Julianische Tageszahl eignet sich hervorragend für Datumsberechnungen wie das Ermitteln der Differenz zwischen zwei Daten oder das Konvertieren zwischen verschiedenen Kalendertypen (z. B. Gregorianisch, Julianisch, Hebräisch) mithilfe der PHP-Kalenderextension.

Die Funktion gehört zur PHP-Kalender-Erweiterung (calendar) und ist auf den meisten Installationen standardmäßig verfügbar. Die Gegenfunktion jdtogregorian() ermöglicht die Rückkonvertierung.

Parameter

Name Typ Default Beschreibung
$month Pflicht int Der Monat des gregorianischen Datums als Zahl von 1 (Januar) bis 12 (Dezember).
$day Pflicht int Der Tag des gregorianischen Datums als Zahl von 1 bis 31.
$year Pflicht int Das Jahr des gregorianischen Datums. Negative Werte stehen für Jahre vor Christus (z. B. -1 für 2 v. Chr., 0 für 1 v. Chr.).

Rückgabewert

Typ
int
Beschreibung
Gibt die Julianische Tageszahl (Julian Day Number) als Ganzzahl zurück. Bei ungültigen Eingaben (z. B. alle Parameter 0) wird 0 zurückgegeben.

Beispiele

Heutiges Datum in Julianische Tageszahl umwandeln

<?php
// Heutiges Datum in Julianische Tageszahl konvertieren
$today = getdate();
$jd = gregoriantojd($today['mon'], $today['mday'], $today['year']);
echo "Gregorianisches Datum: {$today['mon']}/{$today['mday']}/{$today['year']}\n";
echo "Julianische Tageszahl: $jd\n";
Gregorianisches Datum: 7/4/2025 Julianische Tageszahl: 2460861

Differenz zwischen zwei Daten berechnen

<?php
// Anzahl der Tage zwischen zwei gregorianischen Daten berechnen
$jd1 = gregoriantojd(1, 1, 2024);  // 1. Januar 2024
$jd2 = gregoriantojd(12, 31, 2024); // 31. Dezember 2024
$differenz = $jd2 - $jd1;
echo "Tage zwischen 01.01.2024 und 31.12.2024: $differenz\n"; // 365
Tage zwischen 01.01.2024 und 31.12.2024: 365

Umrechnung in den Jüdischen Kalender

<?php
// Gregorianisches Datum in den Jüdischen Kalender konvertieren
$jd = gregoriantojd(10, 3, 2024);
$hebraeisch = jdtojewish($jd);
echo "Gregorianisch: 03.10.2024\n";
echo "Jüdisch (m/d/j): $hebraeisch\n";
Gregorianisch: 03.10.2024 Jüdisch (m/d/j): 7/1/5785

// Wichtig · Fallstricke

Bereichsgrenzen: Gültige Eingaben liegen zwischen dem 25. November 4714 v. Chr. und dem 31. Dezember 9999 n. Chr. Werte außerhalb dieses Bereichs liefern unvorhersehbare Ergebnisse.

Jahr 0: PHP verwendet das astronomische Jahreszählsystem, in dem das Jahr 0 dem historischen Jahr 1 v. Chr. entspricht. Das Jahr -1 entspricht 2 v. Chr. usw.

Erweiterungsabhängigkeit: Die Funktion erfordert die PHP-Erweiterung calendar. Auf Systemen ohne diese Erweiterung steht sie nicht zur Verfügung. Alternativ kann DateTime für Datumsberechnungen verwendet werden.