<?php
/*
* 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 — Μετατρέπει μία Γρηγοριανή ημερομηνία στο Ιουλιανό σύστημα μέτρησσης ημερών
Περιγραφή
Έγκυρο πεδίο ετών για το Γρηγοριανό ημερολόγιο 4714 π.Χ. έως 9999 μ.Χ.
Παρά το γεγονός ότι αυτή η συνάρτησης μπόρει να χειριστεί ημερομηνίες από το 4714 π.χ., τέτοιοιυ είδους χρήση μπορεί να θεωρηθεί χώρις νόημα. Το Γρηγοριανό ημερολόγιο τέθηκε σε ισχύ στις 15 Οκτώβριου, 1582 (ή στις 5 Οκτωβρίου, 1582 βάσει του Ιουλιανού ημερολογίου). Μερικές χώρες το δέχτηκαν πολύ αργότερα. Για παράδειγμα, η Βρετανία άλλαξε το 1752, η Σοβιετική Ένωση το 1918 και η Ελλάδα το 1923. Η περισσότερες Ευρωπαϊκές χώρες χρησιμοποιούσαν το Ιουλιανό ημερολόγιο πριν το Γρηγοριανό.
Example#1 Συναρτήσεις Ημερολογίου
<?php
$jd = GregorianToJD (10,11,1970);
echo "$jd\n";
$gregorian = JDToGregorian ($jd);
echo "$gregorian\n";
?>
GregorianToJD
06-Jun-2006 08:27
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.
<?php
$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;
?>
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.
