GregorianToJD

(PHP 4, PHP 5)

GregorianToJD Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении

Описание

int gregoriantojd ( int $month , int $day , int $year )

Разрешенный диапазон дат для Григорианского календаря с 4714 года до н.э. по 9999 год н.э.

Несмотря на возможность обработки дат вплоть до 4714 года до н.э., такое использование имеет мало смысла. Григорианский календарь не существовал до 15 октября 1582 года (или 5 октября 1582 в Юлианском календаре). Некоторые страны не переходили на этот календарь очень долгое время. Например, Великобритания совершила переход в 1752 году, СССР в 1918г., Греция в 1923г. Большинство стран Европы предпочитали Юлианский календарь Григорианскому.

Список параметров

month

Месяц в виде числа от 1 (январь) до 12 (декабрь)

day

День в виде числа от 1 до 31

year

Года в виде числа от -4714 до 9999

Возвращаемые значения

Число дней (integer) в Юлианском летоисчислении для даты по Григорианскому календарю.

Примеры

Пример #1 Календарные функции

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

Смотрите также

  • jdtogregorian() - Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю
  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление

Коментарии

Автор:
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.
2004-06-08 19:04:03
http://php5.kiev.ua/manual/ru/function.gregoriantojd.html
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;
?>
2005-03-17 15:34:54
http://php5.kiev.ua/manual/ru/function.gregoriantojd.html
Автор:
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);
    }

?>
2009-04-07 16:19:25
http://php5.kiev.ua/manual/ru/function.gregoriantojd.html

    Поддержать сайт на родительском проекте КГБ