这是一个从Julian日期到格里高利日期的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'
答案 0 :(得分:1)
echo jdtogregorian(gregoriantojd(01, 01, 2012)+253);
如果2012年的254是9月10日(看起来好像来自你的链接),那就可以了。
答案 1 :(得分:0)
$date = strtotime('+'.YourDay.' days', mktime(0, 0, 0, 0, 0, YourYear));
strtotime是令人难以置信的功能
答案 2 :(得分:-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;
}
希望这会有所帮助。如果您有任何疑问,请告诉我。