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_* только при запросе строки в формате иврита.