Перейти к содержимому

jdtojulian()

Преобразование юлианских и григорианских дат

Юлианские даты представляют собой непрерывный подсчёт дней и их долей, начиная с полудня по всемирному времени 1 января 4713 года до н. э. Григорианский календарь, в свою очередь, используется большей частью мира. Преобразование между этими двумя системами дат может показаться запутанным, но с PHP это делается довольно просто.

Примечание: Юлианский номер дня, используемый здесь, относится к астрономическому номеру юлианского дня (непрерывный подсчёт дней), который отличается от юлианского календаря и современных астрономических юлианских дат.

Преобразование юлианских дат в григорианские с помощью PHP

Чтобы преобразовать юлианскую дату в григорианскую в PHP, используйте функцию jdtogregorian(). Эта функция принимает один параметр: Юлианский номер дня. Она возвращает ассоциативный массив, содержащий месяц, день и год.

Пример

php
<?php

$julianDate = 2459472.5;
$gregorianDate = jdtogregorian($julianDate);

print_r($gregorianDate); // Outputs: Array ( [month] => 3 [day] => 2 [year] => 2021 )

Как видите, функция возвращает компоненты григорианской даты в виде массива. Вы можете отформатировать её в виде YYYY-MM-DD, используя следующий код:

php
$formattedDate = sprintf('%04d-%02d-%02d', $gregorianDate['year'], $gregorianDate['month'], $gregorianDate['day']);
echo $formattedDate; // Outputs: 2021-03-02

Примечание: jdtogregorian() отбрасывает дробную часть Юлианского номера дня, поскольку она вычисляет только календарную дату. Дробная часть представляет время суток (например, 0,5 соответствует полудню).

Преобразование григорианских дат в юлианские с помощью PHP

Чтобы преобразовать григорианскую дату в юлианскую в PHP, используйте функцию gregoriantojd(). Эта функция принимает три параметра: месяц, день и год.

Пример

php
<?php

$month = 3;
$day = 2;
$year = 2021;

$julianDate = gregoriantojd($month, $day, $year);

echo $julianDate; // Outputs: 2459472

Как видите, функция возвращает Юлианский номер дня в виде целого числа.

Заключение

Преобразование между юлианскими и григорианскими датами — распространённая задача в разработке на PHP. С помощью функций jdtogregorian() и gregoriantojd() эта задача становится простой и понятной. Надеемся, эта статья помогла вам разобраться в том, как преобразовывать юлианские и григорианские даты с помощью PHP. Для получения дополнительной информации см. документацию по jdtogregorian() и gregoriantojd().

Практика

Какова роль функции jdtojulian() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.