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
(PHP 4, PHP 5, PHP 7, PHP 8)
jdtounix — Jülyen Gün Sayısını, Unix zaman damgasına çevirir
$julyengunu
) : int
İşlev julyengunu
'ne karşılık gelen Unix zaman
damgasını ya da verilen julyengunu
Unix zaman
damgası aralığında (1970 ve 2037 Gregoryen yılları arası veya 2440588 <=
julyengunu
<= 2465342 ) değilse false
değerini
döner. İşlevden dönen zaman damgası, GMT'ye göre değil, yerel zamana
göredir.
julyengunu
2440588 ve 2465342 aralığında Jülyen Gün Sayısı.
Jülyen Gün Sayısına, karşılık gelen Unix zaman damgası.
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
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!!
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.
Remember that UNIX timestamps indicate a number of seconds from midnight of January 1, 1970 on the Gregorian calendar, not the Julian Calendar.
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