2015-01-17 3 views
7

Есть ли лучший способ преобразования объекта DateTime в юлианском числа дней, чем-то вроде этого:Джулиан день из DateTime

$jd = GregorianToJD($dt->format('n'), $dt->format('j'), $dt->format('Y')); 

Я немного удивлен не существует либо функции, чтобы сделать это напрямую или спецификатор формата для его печати. Мне что-то не хватает?

Редактировать: Многие из (несколько саркастических) ответов ниже, похоже, предполагают, что число юлианских дней каким-то образом связано с давно устаревшим юлианским календарем. Это не так. Julian day number является одним из наиболее распространенных способов нумерации дней из довольно произвольной эпохи. Его основное использование - в астрономии, где это стандартный способ определения даты.

+3

уверен, PHP нуждается * * более неясное fnctions –

+1

Вы удивлены, что нет функции, которая непосредственно преобразует Григорианскую дата в календаре, который люди перестали использовать столетия назад? – Jon

+0

Я думаю, что этой функции достаточно, php не нуждается в более ненужных функциях для чего-то, что люди перестали использовать много веков назад. –

ответ

3

Это должно сделать трюк:

// $dt = new DateTime(); 
$jd = unixtojd($dt->getTimestamp()); 

Посмотреть больше unixtojd на PHP.net

Смежные вопросы