PHP Conference Japan 2024

jdtounix

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

jdtounix将儒略日转换为 Unix 时间戳

描述

jdtounix(int $julian_day): int

此函数将返回对应于 julian_day 中给定的儒略日的 Unix 时间戳。返回的时间为 UTC。

参数

julian_day

一个儒略日数字,在 64 位系统上介于 2440588106751993607888 之间,在 32 位系统上介于 24405882465443 之间。

返回值

给定儒略日开始(午夜,而非中午)的 Unix 时间戳

错误/异常

如果 julian_day 超出允许范围,则会抛出 ValueError

变更日志

版本 描述
8.0.0 此函数不再在失败时返回 false,而是抛出 ValueError
7.3.24, 7.4.12 julian_day 的上限已扩展。以前,无论架构如何,它都是 2465342

参见

  • unixtojd() - 将 Unix 时间戳转换为儒略日

添加注释

用户贡献的注释 5 条注释

fabio at llgp dot org
18 年前
如果您需要一种简单的方法将十进制儒略日转换为 Unix 时间戳,您可以使用

$unixTimeStamp = ($julianDay - 2440587.5) * 86400;

2440587.5 是 1970 年 1 月 1 日 0:00 UTC 的儒略日
86400 是一天中的秒数
匿名
19 年前
警告:涉及儒略日操作的日历函数似乎忽略了儒略日计数的小数部分。

这意味着返回的日期 50% 的时间都是错误的,因为儒略日从十进制 .5 开始。小心!!
seb at carbonauts dot com
21 年前
请记住,unixtojd() 假设您的时间戳为 GMT,但 jdtounix() 返回本地时间的时间戳。

这让我迷惑了好几次。

所以如果你有

$timestamp1 = time();
$timestamp2 = jdtounix(unixtojd($timestamp1));

除非您的本地时间与 GMT 相同,否则 $timestamp1 将不等于 $timestamp2。
Saeed Hubaishan
10 年前
unixtojd() 假设您的时间戳为 GMT,但 jdtounix() 返回本地时间的时间戳。
所以
<?php
$d1
=jdtogregorian(unixtojd(time()));
$d2= gmdate("m/d/Y");
$d3=date("m/d/Y");
?>
$d1 始终等于 $d2,但 $d1 可能与 $d3 不同
pipian at pipian dot com
21 年前
请记住,UNIX 时间戳表示从公历 1970 年 1 月 1 日午夜开始的秒数,而不是儒略历。
To Top