W3docs

jdtojewish()

Узнайте, как PHP-функция jdtojewish() переводит Юлианский день в дату еврейского календаря — синтаксис, флаги и примеры.

Введение

Функция PHP jdtojewish() преобразует номер юлианского дня (непрерывный целочисленный счётчик дней) в дату еврейского (иврит) календаря. Она входит в состав расширения Calendar и является обратной к jewishtojd().

На этой странице рассматриваются синтаксис функции, её параметры и возвращаемое значение, необязательные флаги форматирования на иврите, рабочий пример и типичные подводные камни.

Что такое номер юлианского дня?

Номер юлианского дня (JDC) — это непрерывный счётчик целых дней, начиная с полудня 1 января 4713 года до н. э. (в пролептическом юлианском календаре). Поскольку каждая дата — прошлая или будущая — соответствует единственному целому числу, JDC является удобным нейтральным представлением: вы конвертируете любую дату в номер юлианского дня, а затем обратно в нужный календарь. Именно так работают функции конверсии календарей в PHP: для каждого календаря есть функция *tojd() и функция jdto*().

Обратите внимание, что «юлианский день» никак не связан с «юлианским календарём» — у них лишь общее название.

Синтаксис

jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string
ПараметрОписание
$julian_dayНомер юлианского дня для преобразования. Должен быть целым числом.
$hebrewЕсли true, возвращает дату в виде текста на иврите вместо month/day/year.
$flagsБитовая маска констант форматирования (см. ниже). Используется только при $hebrew равном true.

Возвращаемое значение: строка. Когда $hebrew равно false, формат — "month/day/year", например "8/7/5784". Когда $hebrew равно true, дата отображается в виде строки на иврите.

Флаги форматирования иврита

Эти константы можно комбинировать с оператором | (побитовое ИЛИ); они вступают в действие только при $hebrew равном true:

КонстантаЭффект
CAL_JEWISH_ADD_ALAFIM_GERESHДобавляет гереш (') для тысяч.
CAL_JEWISH_ADD_ALAFIMДобавляет слово алафим (тысячи).
CAL_JEWISH_ADD_GERESHAYIMДобавляет гершаим перед последней буквой даты.

Базовый пример

<?php

// First convert a Gregorian date to a Julian Day Count.
$julianDay = gregoriantojd(8, 7, 2024); // month, day, year

// Then convert that Julian Day to a Jewish calendar date.
$jewishDate = jdtojewish($julianDay);

echo "Julian Day Count: $julianDay\n";
echo "Jewish date (month/day/year): $jewishDate\n";
?>

Здесь мы берём григорианскую дату 7 августа 2024 года, преобразуем её в номер юлианского дня с помощью gregoriantojd(), а затем передаём этот номер в jdtojewish(). Результат возвращается в формате month/day/year с использованием номеров месяца и года еврейского календаря.

Получение строки на иврите

Передайте true вторым аргументом, чтобы отобразить дату в виде текста на иврите, и объедините флаги для более полного форматирования:

<?php

$julianDay = gregoriantojd(8, 7, 2024);

$hebrew = jdtojewish(
    $julianDay,
    true,
    CAL_JEWISH_ADD_GERESHAYIM | CAL_JEWISH_ADD_ALAFIM_GERESH
);

echo $hebrew;
?>

Типичные подводные камни

  • Используйте целочисленный номер юлианского дня, а не дробный. Функции вроде gregoriantojd() возвращают целое число. Передача числа с плавающей точкой, например 2459401.5, отклоняется в современных версиях PHP — всегда работайте с целыми числами.
  • Флаги игнорируются, если $hebrew не равно true. Константы CAL_JEWISH_* влияют только на вывод строки в формате иврита.
  • Расширение Calendar должно быть доступно. jdtojewish() входит в состав расширения calendar для PHP. Оно включено по умолчанию в большинстве дистрибутивов, но если функция не определена — включите или скомпилируйте это расширение.

Связанные функции

  • jewishtojd() — обратная функция: дата еврейского календаря в номер юлианского дня.
  • gregoriantojd() — дата григорианского календаря в номер юлианского дня.
  • jdtogregorian() — номер юлианского дня в дату григорианского календаря.
  • jdmonthname() — название месяца для номера юлианского дня в заданном календаре.
  • jddayofweek() — день недели для номера юлианского дня.

Заключение

jdtojewish() преобразует номер юлианского дня в дату еврейского календаря, при необходимости — в виде текста на иврите. Используйте её вместе с gregoriantojd() (или любой другой функцией *tojd()) для конвертации между календарями, передавайте целочисленный счётчик дней и обращайтесь к флагам CAL_JEWISH_* только при запросе строки в формате иврита.

Practice

Практика
Что делает PHP-функция jdtojewish()?
Что делает PHP-функция jdtojewish()?
Was this page helpful?