jdtogregorian

(PHP 4, PHP 5, PHP 7)

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

Описание

string jdtogregorian ( int $julianday )

Переводит число дней в Юлианском летоисчислении в строку содержащую Григорианскую дату в формате "месяц/день/год".

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

julianday

Номер дня в Юлианском летоисчислении

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

Дата по Григорианскому календарю в виде строки формата "месяц/день/год"

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

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

Коментарии

Автор:
Julian to Gregorian date change.
If you do not have the calendar extensions loaded this is little function works realy well.

<?php
function jd_to_greg($julian) {
   
$julian $julian 1721119;
   
$calc1 $julian 1;
   
$year floor($calc1 146097);
   
$julian floor($calc1 146097 $year);
   
$day floor($julian 4);
   
$calc2 $day 3;
   
$julian floor($calc2 1461);
   
$day $calc2 1461 $julian;
   
$day floor(($day 4) / 4);
   
$calc3 $day 3;
   
$month floor($calc3 153);
   
$day $calc3 153 $month;
   
$day floor(($day 5) / 5);
   
$year 100 $year $julian;

    if (
$month 10) {
       
$month $month 3;
    }
    else {
       
$month $month 9;
       
$year $year 1;
    }
    return 
"$day.$month.$year";
}
?>
2003-05-31 08:01:59
http://php5.kiev.ua/manual/ru/function.jdtogregorian.html
I have made a slight modification to treebe's jd to greg function, this one will transform a unix timestamp to Gregorian day/month/year format...

<?php
function unix_to_greg($unix_timestamp) {
   
$julian floor(((($unix_timestamp "60") / "60") / "24") + "2440588");
   
$julian $julian 1721119;
   
$calc1 $julian 1;
   
$year floor($calc1 146097);
   
$julian floor($calc1 146097 $year);
   
$day floor($julian 4);
   
$calc2 $day 3;
   
$julian floor($calc2 1461);
   
$day $calc2 1461 $julian;
   
$day floor(($day 4) / 4);
   
$calc3 $day 3;
   
$month floor($calc3 153);
   
$day $calc3 153 $month;
   
$day floor(($day 5) / 5);
   
$year 100 $year $julian;
   
    if (
$month 10)
    {
       
$month $month 3;
    }else{
       
$month $month 9;
       
$year $year 1;
    }
    return 
"$day.$month.$year";
}
?>
2003-09-14 11:05:12
http://php5.kiev.ua/manual/ru/function.jdtogregorian.html
Автор:
JD days may have decimal fractions which correspond to the time of day. The Julian day begins at noon, and the decimal fraction measures fractional days until the beginning of the next day at noon.

For instance, Julian Day 2453179.00000 is June 22, 2004, at 12:00pm (noon). 

One hour later, it's 2453179.04167
At 2453179.20833 I'll have dinner, and
at 2453179.45833, it's time for the evening news.
After a good night of sleep, my alarm will go off at 2453179.83333, 
then at noon on June 23, a new Julian Day begins at 2453180.

To use these functions with fractional days, strip the fractional part with floor(), and apply the function to the integer part. 

Then add 12 hours, bringing you to noon of that day. That is the actual time returned by JDToGregorian().

Then add the fractional part of the day, by multiplying the decimal part of the Julian Day by (24*60*60) seconds. This may take you forward or backward to a different Gregorian calendar date.
2004-06-22 13:37:49
http://php5.kiev.ua/manual/ru/function.jdtogregorian.html
The php gregoriantojd() and jdtogregorian() functions, in addition to the limitations noted by httpwebwitch, does not take account of the 'Astronomical' system of reckoning - i.e. using a year zero, instead of going directly from 1BCE to 1CE, as with the Christian Anno Domini system.

These functions can be used to wrap the php built-ins to return ISO 8601 compliant dates:

<?php
function ISO8601toJD($ceDate) {
    list(
$day$month$year) = array_map('strrev',explode('-'strrev($ceDate), 3));
    if (
$year <= 0$year--;
    return 
gregoriantojd($month$day$year);
}

function 
JDtoISO8601($JD) {
    if (
$JD <= 1721425$JD += 365;
    list(
$month$day$year) = explode('/'jdtogregorian($JD));
    return 
sprintf('%+05d-%02d-%02d'$year$month$day);
}
?>
2009-01-25 23:34:41
http://php5.kiev.ua/manual/ru/function.jdtogregorian.html
The minimum acceptable input Julian day count is 1, which produces an output of "11/25/-4714" (at least in my operating system and location) which means 25 November 4714 BC. PHP does not recognize the year 0. Astronomers do use the year 0, and would write the Gregorian date that corresponds to Julian day number 1 as 25 November -4713.
2016-09-18 23:08:31
http://php5.kiev.ua/manual/ru/function.jdtogregorian.html

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