downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

JDDayOfWeek> <FrenchToJD
[edit] Last updated: Fri, 23 Mar 2012

view this page in

GregorianToJD

(PHP 4, PHP 5)

GregorianToJDGregoryen tarihini, Jülyen Gün Sayısına çevirir

Açıklama

int gregoriantojd ( int $ay , int $gun , int $yil )

Gregoryen Takvimi için geçerli olan aralık M.Ö. 4714 ile M.S. 9999 arasıdır

Bu işlev M.Ö. 4714'e kadar olan tarihleri işleyebilse de, bu tip bir kullanım anlamlı değildir. Gregoryen takvimi 15 Ekim 1582'ye (Jülyen takvimine göre 5 Ekim 1582) kadar kullanılmamıştır. Hatta bazı ülkeler bu tarihten daha sonra kullanmaya başlamıştır, örneğin; İngiliz krallığı 1752, SSCB 1918 ve Yunanistan 1923'de geçmiştir. Birçok Avrupa ülkesi Gregoryen takviminden önce Jülyen takvimini kullanmıştır.

Değiştirgeler

ay

1'den (Ocak), 12'ye (Aralık) kadar ay değeri

gun

1 ile 31 arasında gün değeri

yil

-4714 ile 9999 arasında yıl değeri

Dönen Değerler

Gregoryen tarihine karşılık tamsayı olarak Jülyen Gün Sayısı.

Örnekler

Örnek 1 Takvim işlevleri örneği

<?php
$jd 
GregorianToJD(10111970);
echo 
"$jd\n";
$gregorian JDToGregorian($jd);
echo 
"$gregorian\n";
?>

Ayrıca Bakınız

  • jdtogregorian() - Jülyen Gün Sayısını, Gregoryen tarihine çevirir
  • cal_to_jd() - Desteklenen bir takvimden Jülyen Gün Sayısına dönüşüm yapar



JDDayOfWeek> <FrenchToJD
[edit] Last updated: Fri, 23 Mar 2012
 
add a note add a note User Contributed Notes GregorianToJD
brian at slaapkop dot net 10-May-2010 01:53
Some people might find it useful to use a function that takes in dates formatted by ISO8601 standards (yyyy-mm-dd):

<?php function daysBetweenDate($from, $till) {
/*
 *This function will calculate the difference between two given dates.
 *
 *Please input time by ISO 8601 standards (yyyy-mm-dd).
 *i.e: daysBetweenDate('2009-01-01', '2010-01-01');
 *This will return 365.
 *
 *Author: brian [at] slaapkop [dot] net
 *May 5th 2010
*/
   
if($till < $from) {
       
trigger_error("The date till is before the date from", E_USER_NOTICE);
        }
       
   
//Explode date since gregoriantojd() requires mm, dd, yyyy input;
       
$from = explode('-', $from);
       
$till = explode('-', $till);

   
//Calculate date to Julian Day Count with freshly created array $from.
       
$from = gregoriantojd($from[1], $from[2], $from[0])."<br />";
       
   
//Calculate date to Julian Day Count with freshly created array $till.
       
$till = gregoriantojd($till[1], $till[2], $till[0])."<br />";

   
//Substract the days $till (largest number) from $from (smallest number) to get the amount of days
       
$days = ($till - $from);
   
   
//Return the number of days.
       
return $days;

   
//Isn't it sad how my comments use more lines than the actual code?
}
?>
jfg 07-Apr-2009 07:19
If you need the same output as the g_date_get_julian function of the GlibC, here is my php implementation :

<?php
   
/**
     * Glib g_date_get_julian PHP implementation
     *
     * @param  $str  Date string in a format accepted by strtotime
     * @author jfg
     */
   
private function _get_julian( $str )
    {
       
$d = date_create($str);

        if(
$d == false )
            return
0;
       
       
$day_in_year = (int) date_format($d, "z");
       
$year        = (int) date_format($d, "Y") - 1;
       
$julian_days = $year * 365;
       
$julian_days += ($year >>= 2);
       
$julian_days -= ($year /= 25);
       
$julian_days += $year >> 2;
       
$julian_days += $day_in_year + 1;

        return
ceil($julian_days);
    }

?>
ryker at ridgex dot net 06-Jun-2006 02:27
<?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;   
}
?>
jettyrat at jettyfishing dot com 17-Mar-2005 06: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;
?>
httpwebwitch 08-Jun-2004 10: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.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites