jdtounix

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

jdtounix β€” ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ число Π΄Π½Π΅ΠΉ Π² юлианском лСтоисчислСнии Π² ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix

ОписаниС

function jdtounix(int $julian_day): int

Π­Ρ‚Π° функция Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π½ΠΎΠΌΠ΅Ρ€Ρƒ дня Π² юлианском лСтоисчислСнии, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π² julian_day. Π‘ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ UTC.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

julian_day

НомСр дня Π² юлианском лСтоисчислСнии ΠΌΠ΅ΠΆΠ΄Ρƒ 2440588 ΠΈ 106751993607888 Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ 2440588 ΠΈ 2465443 Π² 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠœΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° (ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ) юлианского дня.

Ошибки

Если julian_day находится Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, выбрасываСтся ValueError.

Бписок измСнСний

ВСрсия ОписаниС
8.0.0 Ѐункция большС Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false Π² случаС возникновСния ошибки, вмСсто этого выбрасываСт ValueError.
7.3.24, 7.4.12 Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄Π΅Π» julian_day. РаньшС ΠΎΠ½ Π±Ρ‹Π» 2465342 нСзависимо ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • unixtojd() - ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix Π² юлианский дСнь
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 5 notes

up
7
fabio at llgp dot org ΒΆ
19 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 ΒΆ
21 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 ΒΆ
22 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 ΒΆ
11 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 ΒΆ
22 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.