如果您需要一种简单的方法来将小数儒略日转换为 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 不同