The PHP Online Conference 2021

jdtounix

(PHP 4, PHP 5, PHP 7)

jdtounixユリウス歴を Unix タイムスタンプに変換する

説明

jdtounix ( int $jday ) : int

この関数は、jday で指定したユリウス歴に 対応する Unix タイムスタンプを返します。 jday が範囲外の場合は FALSE を返します。 返される時刻はUTCです。

パラメータ

jday

64bit のシステムでは、2440588 から 106751993607888 までのユリウス積算日。 32bit のシステムでは、2440588 から 2465443 までの値です。

返り値

指定したユリウス積算日の開始(昼ではなく夜中)時の Unix タイムスタンプを返します。 失敗した場合に FALSE を返します

変更履歴

バージョン 説明
7.3.24, 7.4.12 jday の上限が拡張されました。 これより前のバージョンでは、アーキテクチャに関わらず、 2465342 が上限でした。

参考

  • unixtojd() - Unix タイムスタンプをユリウス歴に変換する

add a note add a note

User Contributed Notes 5 notes

up
5
fabio at llgp dot org
14 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
15 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
1
seb at carbonauts dot com
17 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
0
pipian at pipian dot com
17 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.
up
-1
Saeed Hubaishan
5 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
To Top