Funktion: gregorday()
scheitert bei PHP 5.3 von 1&1 an: gregoriantojd()
 
<?PHP
// gregorday() ------------------------------------------------------------------ mit gregoriantojd //
// TagNr nach dem Gregorianischen Kalender, der am 15.10.1582 beginnt
function gregorday1 ($tag, $mon, $jahr){
   $gregtag= gregoriantojd($mon, $tag, $jahr)-gregoriantojd(10, 15, 1582);
   return $gregtag+1;
}


// gregorday() ------------------------------------------------------------------ alternativ //
// (nur für gregorday2())
$monattage = array(0,31,28,31,30,31,30,31,31,30,31,30,31);

// (nur für gregorday2()) .. Berechnet ob das Jahr ein Schaltjahr ist
function schaltjahr($jahr){
   if(($jahr % 400) == 0 || (($jahr % 4) == 0 && ($jahr % 100) != 0)) return 1;
   else return 0;
}

// TagNr nach dem Gregorianischen Kalender, der am 15.10.1582 beginnt
function gregorday2 ($tag, $mon, $jahr){
   global $monattage;
   $gregtag=0;
   for($n=1582; $n<$jahr; $n++) $gregtag= $gregtag+365+schaltjahr($n);
   for($n=1; $n<$mon; $n++){$gregtag= $gregtag+$monattage[$n];}
   if($mon>2) $gregtag = $gregtag+schaltjahr($jahr);
   $gregtag=$gregtag+$tag-287;
   return $gregtag;
}


// ---------------------------------------- Test --------------------------- //

$tag=15; $mon=10; $jahr=1582;
echo $jahr.' -> '.schaltjahr($jahr).'<BR>';
echo gregorday1($tag,$mon,$jahr).'<BR>';
echo gregorday2 ($tag,$mon,$jahr).'<BR>';
?>