如果您需要一種簡單的方法將小數儒略日轉換為 Unix 時間戳記,您可以使用
$unixTimeStamp = ($julianDay - 2440587.5) * 86400;
2440587.5 是 1970 年 1 月 1 日 0:00 UTC 的儒略日
86400 是一天中的秒數
(PHP 4, PHP 5, PHP 7, PHP 8)
jdtounix — 將儒略日轉換為 Unix 時間戳記
julian_day
在 64 位元系統上,儒略日數值介於 2440588
和 106751993607888
之間;在 32 位元系統上,則介於 2440588
和 2465443
之間。
給定儒略日的 Unix 時間戳記(午夜零時,而非正午)
如果 julian_day
超出允許範圍,則會拋出 ValueError。
版本 | 說明 |
---|---|
8.0.0 | 此函數在失敗時不再返回 false ,而是拋出 ValueError。 |
7.3.24, 7.4.12 | julian_day 的上限已擴展。先前,無論架構為何,上限皆為 2465342 。 |
如果您需要一種簡單的方法將小數儒略日轉換為 Unix 時間戳記,您可以使用
$unixTimeStamp = ($julianDay - 2440587.5) * 86400;
2440587.5 是 1970 年 1 月 1 日 0:00 UTC 的儒略日
86400 是一天中的秒數
請記住,unixtojd() 假設您的時間戳記是 GMT 時間,但 jdtounix() 返回的是當地時間的時間戳記。
這讓我幾次都搞錯了。
所以如果您有
$timestamp1 = time();
$timestamp2 = jdtounix(unixtojd($timestamp1));
除非您的當地時間與 GMT 時間相同,否則 $timestamp1 將不等於 $timestamp2。
unixtojd() 假設您的時間戳記是 GMT 時間,但 jdtounix() 返回的是當地時間的時間戳記。
所以
<?php
$d1=jdtogregorian(unixtojd(time()));
$d2= gmdate("m/d/Y");
$d3=date("m/d/Y");
?>
$d1 永遠等於 $d2,但 $d1 可能與 $d3 不同
請記住,UNIX 時間戳記表示從格里高利曆(Gregorian calendar)1970 年 1 月 1 日午夜算起的秒數,而不是儒略曆(Julian Calendar)。