W3docs

jddayofweek()

Before diving into the "jddayofweek" function, it's essential to understand the Julian calendar, which was introduced by Julius Caesar in 45 BC. This calendar

Понимание юлианского календаря

Прежде чем переходить к функции jddayofweek, важно понять юлианский календарь, который был введён Юлием Цезарем в 45 году до н. э. Этот календарь широко использовался по всей Европе до принятия григорианского календаря в 1582 году.

Юлианский календарь основан на году из 365 дней, с високосным годом каждые четыре года для учета дополнительного четверти дня в солнечном году. Однако этот подход приводит к ошибке примерно в три дня каждые 400 лет, что и стало причиной перехода на григорианский календарь.

Что такое функция jddayofweek?

Функция jddayofweek — это встроенная функция PHP, которая определяет день недели на основе заданного номера юлианского дня. Она принимает два параметра: julianday и mode.

Параметр julianday — это целое число, представляющее количество дней, прошедших с 1 января 4713 года до н. э. (юлианская эпоха). Этот непрерывный подсчет дней служит отправной точкой для календарных вычислений.

Параметр mode — это необязательное целое число, определяющее формат возвращаемого значения. По умолчанию используется режим 3 (CAL_DOW_EXTENDED), который возвращает день недели в виде целого числа от 1 до 7, где 1 соответствует понедельнику, а 7 — воскресенью. Другие режимы возвращают сокращенные (1) или полные (2) названия дней.

Как использовать функцию jddayofweek в PHP

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

Получив номер юлианского дня, передайте его в jddayofweek вместе с нужным режимом. Функция вернет соответствующий день недели.

Ниже приведен пример, демонстрирующий режим по умолчанию (3) и режим 2:

Функция jddayofweek() в PHP

<?php
// Convert Gregorian date to Julian day number
$julianDay = cal_to_jd(CAL_GREGORIAN, 3, 2, 2023);

// Mode 3 (default): Returns integer 1-7 (Monday=1, Sunday=7)
$dayInt = jddayofweek($julianDay, 3);
echo "Mode 3: Day number is {$dayInt}\n";

// Mode 2: Returns full day name
$dayName = jddayofweek($julianDay, 2);
echo "Mode 2: {$dayName}\n";
?>

В этом примере мы преобразуем григорианскую дату 2023-03-02 в номер юлианского дня с помощью cal_to_jd. Затем мы передаем его в jddayofweek с режимом 3, который возвращает 5 (что соответствует четвергу). Использование режима 2 возвращает полное название "Четверг".

Заключение

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

Практика

Практика

Что делает функция jddayofweek() в PHP?