ConFoo 2025

jdtounix

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtounixKonvertiert ein julianisches Datum in einen Unix-Timestamp

Beschreibung

jdtounix(int $julian_day): int

Diese Funktion gibt einen Unix-Timestamp (in Sekunden seit dem 1.1.1970) zurück, der dem in julian_day übergebenen julianischen Datum entspricht. Die zurückgegebene Zeit ist UTC.

Parameter-Liste

julian_day

Die Zahl eines julianischen Tages zwischen 2440588 und 106751993607888 auf 64-Bit-Systemen oder zwischen 2440588 und 2465443 auf 32-Bit-Systemen.

Rückgabewerte

Der Unix-Timestamp für den Anfang (Mitternacht, nicht Mittag) des angegebenen julianischen Tages.

Fehler/Exceptions

Falls julian_day außerhalb des zulässigen Bereichs liegt, wird ein ValueError ausgelöst.

Changelog

Version Beschreibung
8.0.0 Diese Funktion gibt im Fehlerfall nicht mehr false zurück, sondern löst stattdessen einen ValueError aus.
7.3.24, 7.4.12 Die Obergrenze von julian_day wurde erweitert. Bisher lag sie unabhängig von der Architektur bei 2465342.

Siehe auch

  • unixtojd() - Konvertiert Unix-Timestamp in Julianisches Datum

add a note

User Contributed Notes 5 notes

up
7
fabio at llgp dot org
18 years ago
If you need an easy way to convert a decimal julian day to an unix timestamp you can use:

$unixTimeStamp = ($julianDay - 2440587.5) * 86400;

2440587.5 is the julian day at 1/1/1970 0:00 UTC
86400 is the number of seconds in a day
up
3
Anonymous
19 years ago
Warning: the calender functions involving julian day operations seem to ignore the decimal part of the julian day count.

This means that the returned date is wrong 50% of the time, since a julian day starts at decimal .5 . Take care!!
up
0
seb at carbonauts dot com
21 years ago
Remember that unixtojd() assumes your timestamp is in GMT, but jdtounix() returns a timestamp in localtime.

This fooled me a few times.

So if you have:

$timestamp1 = time();
$timestamp2 = jdtounix(unixtojd($timestamp1));

Unless your localtime is the same as GMT, $timestamp1 will not equal $timestamp2.
up
-2
Saeed Hubaishan
10 years ago
unixtojd() assumes that your timestamp is in GMT, but jdtounix() returns a timestamp in localtime.
so
<?php
$d1
=jdtogregorian(unixtojd(time()));
$d2= gmdate("m/d/Y");
$d3=date("m/d/Y");
?>
$d1 always equals $d2 but $d1 may differ from $d3
up
-2
pipian at pipian dot com
21 years ago
Remember that UNIX timestamps indicate a number of seconds from midnight of January 1, 1970 on the Gregorian calendar, not the Julian Calendar.
To Top