Signatur
Beschreibung
unixtojd() wandelt einen Unix-Timestamp (Sekunden seit dem 1. Januar 1970 00:00:00 UTC) in die entsprechende Julianische Tagesnummer (Julian Day Number, JDN) um. Die Julianische Tagesnummer ist ein kontinuierlicher Zähler für Tage, der beim 1. Januar 4713 v. Chr. beginnt und in der Astronomie sowie bei Kalenderberechnungen weit verbreitet ist.
Die Funktion ist besonders nützlich, wenn man zwischen verschiedenen Kalendersystemen konvertieren möchte, da PHP-Funktionen wie jdtogregorian(), jdtojulian() oder jdtojewish() alle die Julianische Tagesnummer als Eingabe erwarten. So lässt sich ein Unix-Timestamp indirekt in nahezu jedes Kalendersystem umrechnen.
Wird kein Parameter übergeben, verwendet die Funktion automatisch den aktuellen Unix-Timestamp, also den aktuellen Zeitpunkt. Zu beachten ist, dass die Julianische Tagesnummer immer auf Tagesbasis arbeitet – die Uhrzeit-Information des Timestamps geht dabei verloren.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timestamp | int | time() | Ein Unix-Timestamp als Ganzzahl. Wird dieser Parameter weggelassen, wird der aktuelle Unix-Timestamp (time()) verwendet. |
Rückgabewert
Beispiele
Aktuellen Timestamp in Julianisches Datum umwandeln
<?php
// Aktuelles Datum als Julianische Tagesnummer
$jd = unixtojd();
echo "Julianische Tagesnummer heute: " . $jd . PHP_EOL;
// Rückkonvertierung in gregorianisches Datum
$gregorianisch = jdtogregorian($jd);
echo "Gregorianisches Datum: " . $gregorianisch . PHP_EOL;
Unix-Timestamp eines bestimmten Datums konvertieren
<?php
// Unix-Timestamp für den 1. Januar 2000 (Mitternacht UTC)
$timestamp = mktime(0, 0, 0, 1, 1, 2000);
$jd = unixtojd($timestamp);
echo "Unix-Timestamp: " . $timestamp . PHP_EOL;
echo "Julianische Tagesnummer: " . $jd . PHP_EOL;
// Konvertierung in verschiedene Kalender
echo "Gregorianisch: " . jdtogregorian($jd) . PHP_EOL;
echo "Julianisch: " . jdtojulian($jd) . PHP_EOL;
echo "Jüdisch: " . jdtojewish($jd) . PHP_EOL;
// Wichtig · Fallstricke
Zeitzonenabhängigkeit: Da die Julianische Tagesnummer nur auf Tagesbasis arbeitet, kann das Ergebnis je nach Zeitzone variieren. Ein Timestamp knapp vor Mitternacht UTC kann je nach lokaler Zeitzone einem anderen Tag zugeordnet werden. Für konsistente Ergebnisse sollte man sicherstellen, dass der übergebene Timestamp auf UTC basiert.
Erweiterung erforderlich: Die Funktion unixtojd() gehört zur Calendar-Erweiterung, die in den meisten Standard-PHP-Installationen aktiviert ist, aber nicht zwingend vorhanden sein muss. Bei Bedarf muss die Erweiterung explizit aktiviert oder nachinstalliert werden.
Wertebereich: Unix-Timestamps vor dem 1. Januar 1970 (negative Werte) können auf manchen Systemen zu unerwarteten Ergebnissen führen.