Php 朱利安日

Php 朱利安日,php,Php,有没有比下面这样更好的方法将DateTime对象转换为儒略日数: $jd = GregorianToJD( $dt->format('n'), $dt->format('j'), $dt->format('Y') ); 我有点惊讶,没有一个函数可以直接执行它,也没有一个格式说明符来打印它。我错过了什么明显的东西吗 编辑:下面的许多(有些讽刺)回复似乎假设儒略日数字与过时的儒略历有某种关联。事实并非如此。这是从一个相当随意的时代开始计算天数的最常用方法之一。它的主要用途是在天文

有没有比下面这样更好的方法将DateTime对象转换为儒略日数:

$jd = GregorianToJD( $dt->format('n'), $dt->format('j'), $dt->format('Y') );
我有点惊讶,没有一个函数可以直接执行它,也没有一个格式说明符来打印它。我错过了什么明显的东西吗


编辑:下面的许多(有些讽刺)回复似乎假设儒略日数字与过时的儒略历有某种关联。事实并非如此。这是从一个相当随意的时代开始计算天数的最常用方法之一。它的主要用途是在天文学中,它是识别日期的标准方法。

这应该可以做到:

// $dt = new DateTime();
$jd = unixtojd( $dt->getTimestamp());

查看PHP.net上的更多信息

当然,PHP需要更多模糊的功能您很惊讶没有一个函数可以直接将公历日期转换为人们几个世纪前就停止使用的日历?我认为这个函数就足够了,php不需要更多不必要的函数来实现人们几个世纪前就停止使用的东西。这是一个非常公平的问题,而OP的目标不是另一个php函数,而是DateTime类中的一个方法。GeorgianToJD采用原始参数,我发现它更通用。通过调用“format”三次来拆分日期组件并不优雅,但恐怕这就是您所能做的。(投赞成票)我认为你的做法可能是对的。有一个替代功能,您可以使用它将时间戳转换为JD的,但我担心这不会更整洁。