日付計算に必要な基準の日付を用います。
これには、準ユリウス日(1858.11.17を0とする、この日からの通算日数)を用います。
準ユリウス日(MJD)は、ユリウス通日(JD:紀元前4713年1月1日世界時正午)から、2400000.5を引いた値になります。
function MJD($N,$M,$D) {
if ($M<3) { $N--; $M+=12; }
$MD=floor(365.25 * $N) + floor($N/400) - floor($N/100) + floor(30.59*($M-2)) + $D - 678912;
if ($M>12) { $N++; $M-=12; }
return floor($MD);
}
です。
このルーチンは基本になります。大変重要ですので、忘れないで下さいね。
それでは、ルーチンが正しいかのチェックです。
<?php>
//上記のルーチン
echo MJD(1858,11,17)."<BR>";
echo MJD(2005,9,5)."<BR>";
</?>
というファイルを作成してください。
ファイル名は「mjdtest.php」とでもします。
PHPが使える環境で、実行してみます。
0
53618
と表示されればOKです。