0

这是一个从儒略日期到公历日期的 PHP 示例:

$jd = gregoriantojd(10,3,1975);
echo($jd . "<br />");

$gregorian = jdtogregorian($jd);
echo($gregorian);

Output:
2442689
10/3/1975

如果你有完整的儒略日,这很有效,但如果你只有一个儒略日,比如“254”和“2012”年怎么办?您如何使用 PHP 仅使用儒略日和公历年份来获得公历日期?

这是儒略日的图表:

http://landweb.nascom.nasa.gov/browse/calendar.html

这可以用PHP吗?

编辑:根据答案,这就是我想出的,尽管可能有更简单的方法:

$JulianDay = 77;
$Year = 1977;
$DateYear = date("Y/m/d", mktime(0, 0, 0, 1, 1, $Year));
$GregDate = new DateTime($DateYear);
$GregDate->modify("+$JulianDay day");
$Date = $GregDate->format('Y/m/d');
echo $Date; // '1977/03/19'
4

3 回答 3

1
echo jdtogregorian(gregoriantojd(01, 01, 2012)+253);

如果 2012 年的 254 是 9 月 10 日(从您的链接看来是这样),它工作正常。

于 2012-08-30T14:59:40.563 回答
0
$date = strtotime('+'.YourDay.' days', mktime(0, 0, 0, 0, 0, YourYear));

strtotime 是一个令人难以置信的功能

于 2012-08-30T15:00:31.407 回答
-1

您可以在 php 中使用以下函数来执行相同的操作。

function d2julian($indate) {
    $year = ltrim(date('y', $indate),'0');     /* Year part with leading zeroes stripped    */
    if ($year == 0) $outdate = '00';
    else if ($year < 10) $outdate = '0' . $year;
    else $outdate = $year;

    $day = ltrim(date('z',$indate)+1,'0');    /* Day with leading zeroes stripped            */
    if ($day < 10) $outdate .= '00' . $day;
    else if ($day < 100) $outdate .= '0' . $day;
    else $outdate .= $day;

    return $outdate;
}

希望这可以帮助。如果您有任何问题,请告诉我。

于 2020-06-01T10:32:44.097 回答