Необходимо работать с негригорианским календарем, таким как Юлианский, Иудейский или Французский Республиканский.
Модуль PHP «календарь» обеспечивает функции преобразования для
работы с Юлианским календарем, так же как и с Французским Республиканским и Иудейским календарями. Для работы с этими функциями необходимо, чтобы PHP был собран с поддержкой этого модуля.
Эти функции используют юлианский счет дней (а это не то же самое,
что Юлианский календарь) как промежуточный формат обмена данными между ними.
Две функции, jdtogregorian() и gregoriantojd(), выполняют преобразования между юлианскими днями и теми же датами Григорианского
календаря:
$jd = gregoriantojd(3,9,1876); // 9 марта 1876 года; $jd = 2406323
$gregorian = jdtogregorian($jd); // $gregorian = 3/9/1876
Допустимым диапазоном Григорианского календаря являются значения от 4714 BCE (до рождества Христова) до 9999 CE (после рождества Христова).
Преобразования между юлианским представлением дат и Юлианским календарем выполняются при помощи функции jdtojulian() и juliantojd():
// 29 февраля 1900 года (негригорианский високосный год)
$jd = juliantojd(2, 29, 1900); // $jd = 2415092
$julian = jdtojulian($jd); // $julian = 2/29/1900
$gregorian = jdtogregorian($jd); // $gregorian = 3/13/1900
Допустимым диапазоном для Юлианского календаря являются значения от 4713 BCE до 9999 CE, но так как он был создан в 46 году до рождества Христова, то вы рискуете вызвать недовольство поклонников
Юлианского календаря, если будете использовать его для дат до его
создания.
Преобразования между юлианским представлением дат и Французским Республиканским календарем выполняется посредством функции jdtofrench() и frenchtojd():
$jd = frenchtojd(8,13,11); // 13 floreal XI; $jd = 2379714
$french = jdtofrench($jd); // $french = 8/13/11
$gregorian = jdtofregorian($jd); // $gregorian = 5/3/1803;
дата продажи Луизианы США.
Для Французского Республиканского календаря допустимыми являются даты с сентября 1792 года до сентября 1806 года, что представляет собой небольшой интервал времени, но, поскольку календарем пользовались с 1793 года до января 1806 года, этого вполне достаточно. Для преобразования между юлианским представлением дат и Иудейским календарем применяются функции jdtojewish() и jewishtojd():
$jd = JewishToJD(6, 14, 5761); // Adar 14, 5761; $jd = 2451978
$jewish = JDToJewish($jd); // $jewish = 6/14/5761
$gregorian = JDToGregorian($jd); // $gregorian = 3/9/2001
Допустимый диапазон для Иудейского календаря начинается с 3761 BCE (первый год по Иудейскому календарю).
Смотрите документацию по функциям календаря на http://www.php.net/calendar история Григорианского календаря изложена на странице http://scienceworld.wolfram.com/astronomy/GregorianCalendar.html