/*
* ComputeDateDifference(...)
* Description:
* Calculates the difference between two dates.
*
* Parameter:
* $m0, $d0, $y0 => 1. Moth/Day/Year
* $m1, $d1, $y1 => 2. Moth/Day/Year
*
* Return:
* Difference between given dates in days.
*
* Autor:
* 06.06.2006 - Christian Meyer <ryker@ridgex.net>
*/
function ComputeDateDifference($m0,$d0,$y0,$m1,$d1,$y1)
{
$x0 = gregoriantojd($m0,$d0,$y0);
$x1 = gregoriantojd($m1,$d1,$y1);
$diff = $x1 - $x0;
if ($diff < 0)
$diff *= -1; // abs
return $diff;
}
GregorianToJD
(PHP 4, PHP 5)
GregorianToJD — Converte una data Gregoriana in un Giorno Giuliano
Descrizione
int gregoriantojd
( int $mese
, int $giorno
, int $anno
)
L'intervallo valido per il Calendario Gregoriano è dal 4714 a.C. al 9999 d.C.
Anche se questa funzione può gestire date fino al 4714 a.C., qusto utilizzo potrebbe non avere senso. Il calendario Gregoriano fu istituito il 15 Ottobre 1582 (o 5 Ottobre 1582 nel calendario Giuliano). Alcune nazioni non lo accettarono per un lungo periodo. Per esempio, il Regno Unito si convertì nel 1752, L'Unione Sovietica nel in 1918 e la Grecia nel 1923. La maggior parte delle nazioni Europee usavano il calendario Giuliano prima del Gregoriano.
Example #1 Calendar functions
<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>
GregorianToJD
ryker at ridgex dot net
06-Jun-2006 08:27
06-Jun-2006 08:27
jettyrat at jettyfishing dot com
17-Mar-2005 01:34
17-Mar-2005 01:34
You can obtain the decimal fraction of the Julian date with the php gregoriantojd() function or the function shown below by applying this code to the returned value.
$julianDate = gregoriantojd($month, $day, $year);
//correct for half-day offset
$dayfrac = date('G') / 24 - .5;
if ($dayfrac < 0) $dayfrac += 1;
//now set the fraction of a day
$frac = $dayfrac + (date('i') + date('s') / 60) / 60 / 24;
$julianDate = $julianDate + $frac;
httpwebwitch
08-Jun-2004 04:04
08-Jun-2004 04:04
This function also ignores decimal fractions in JD dates, and it uses non-standard format for returning the Gregorian date.
So, if your JD date is 2453056.28673, the Gregorian returned value is 2/20/2004, not "2004-02-20 23:45:36"
The decimal part is important, since the Julian day begins at noon, for example 2453056.49 is on Friday, 2453056.50 is on Saturday. Discarding the decimal part means that your returned Gregorian Date will be wrong 50% of the time.
