Jdtogregorian: примеры (PHP)
jdtogregorian(int $julian_day): stringФункция jdtogregorian() выполняет преобразование юлианской даты (Julian Day Count) в строку, представляющую дату по григорианскому календарю. Эта функция является частью календарных функций PHP, работающих с юлианским счётом дней. Она применяется в астрономических расчётах, исторических исследованиях и при конвертации между различными календарными системами.
Использование функции актуально при необходимости отображения даты, представленной в виде целого числа юлианских дней. Такой формат часто встречается в астрономических алгоритмах, базах данных, специализированных расчётах и при работе с историческими датами до введения григорианского календаря.
Функция принимает один обязательный аргумент:
- $julianday (int) — целое число, представляющее количество дней по юлианскому календарю (Julian Day Count).
Функция возвращает строку с датой в григорианском календаре в формате "месяц/день/год".
echo jdtogregorian(2459580);1/13/2022
echo jdtogregorian(2299160);10/4/1582
echo jdtogregorian(0);11/24/-4714
Функция cal_from_jd() возвращает массив с подробной информацией о дате для различных календарей, включая григорианский. Она более универсальна, так как поддерживает разные календарные системы.
Функция gregoriantojd() выполняет обратное преобразование — из григорианской даты в юлианский день. Эти две функции часто используются вместе.
Функции для преобразования между юлианскими днями и временем Unix. Полезны при интеграции с системами, использующими Unix-время.
echo jdtogregorian('текст');Warning: jdtogregorian() expects parameter 1 to be int, string given
echo jdtogregorian(-1000000);11/22/-4716
Результат корректен, но может быть неожиданным из-за использования астрономического года.
$date = jdtogregorian(2459580);
list($month, $day, $year) = explode('/', $date);
echo "День: $day, Месяц: $month, Год: $year";День: 13, Месяц: 1, Год: 2022
В PHP 8.0.0 функция jdtogregorian() стала строго типизированной. При передаче аргументов нецелочисленного типа теперь выбрасывается исключение TypeError. Ранее нецелочисленные значения преобразовывались в целые числа.
// PHP 7
var_dump(jdtogregorian('2459580.5'));
// PHP 8
try {
var_dump(jdtogregorian('2459580.5'));
} catch (TypeError $e) {
echo $e->getMessage();
}PHP 7: string(9) "1/13/2022" PHP 8: jdtogregorian(): Argument #1 ($julianday) must be of type int, string given
$jd = 2459580;
$gregorian = jdtogregorian($jd);
list($month, $day, $year) = explode('/', $gregorian);
printf("Дата: %04d-%02d-%02d", $year, $month, $day);Дата: 2022-01-13
function validateJulianDay($jd) {
$gregorian = jdtogregorian($jd);
if ($gregorian === '0/0/0') {
return false;
}
return $gregorian;
}
echo validateJulianDay(2459580) ?: 'Неверный юлианский день';1/13/2022
$jd1 = gregoriantojd(1, 1, 2020);
$jd2 = gregoriantojd(1, 1, 2022);
$date1 = jdtogregorian($jd1);
$date2 = jdtogregorian($jd2);
echo "Период с $date1 по $date2";Период с 1/1/2020 по 1/1/2022
$julianDays = [2459580, 2459581, 2459582];
$gregorianDates = array_map('jdtogregorian', $julianDays);
print_r($gregorianDates);Array
(
[0] => 1/13/2022
[1] => 1/14/2022
[2] => 1/15/2022
)from datetime import datetime, timedelta
jd = 2459580
gregorian_date = datetime(1, 1, 1) + timedelta(days=jd - 1721425.5)
print(gregorian_date.strftime('%m/%d/%Y'))01/13/2022
// Установка: npm install julian
const julian = require('julian');
let date = julian.toDate(2459580);
console.log(date.toLocaleDateString('en-US'));1/13/2022
SELECT DATE_FORMAT(FROM_DAYS(2459580 + 1721425), '%m/%d/%Y');01/13/2022