jdtojulian()
Aprenda como a função PHP jdtojulian() converte uma Contagem de Dias Julianos em uma data do calendário juliano, com exemplos e a função inversa juliantojd().
A Função PHP jdtojulian()
A função jdtojulian() converte uma Contagem de Dias Julianos em uma data no calendário juliano, retornada como uma string no formato mês/dia/ano.
É importante não confundir os dois significados da palavra "juliano" aqui:
- Contagem de Dias Julianos (JDC) — uma contagem contínua de dias desde o meio-dia do Tempo Universal em 1º de janeiro de 4713 a.C. É apenas um número (por exemplo,
2459459) e não tem relação com nenhum calendário específico. É amplamente utilizado em astronomia porque simplifica a aritmética de datas. - Calendário juliano — o calendário introduzido por Júlio César em 45 a.C., utilizado em toda a Europa até ser gradualmente substituído pelo calendário gregoriano a partir de 1582. Hoje os dois calendários diferem em 13 dias.
jdtojulian() recebe uma Contagem de Dias Julianos e informa a qual data essa contagem corresponde no calendário juliano. Sua contraparte, jdtogregorian(), faz o mesmo, mas retorna a data no calendário gregoriano.
Sintaxe
jdtojulian(int $julian_day): stringAceita um parâmetro — a Contagem de Dias Julianos como um inteiro — e retorna a data correspondente no calendário juliano como uma string "mês/dia/ano". Se a entrada for 0 (um dia juliano inválido), retorna "0/0/0".
Convertendo uma Contagem de Dias Julianos para uma Data do Calendário Juliano
<?php
$jdc = 2459459;
$julianDate = jdtojulian($jdc);
echo $julianDate; // Outputs: 8/19/2021O valor retornado é uma string, então você pode dividi-la quando precisar das partes individuais:
<?php
[$month, $day, $year] = explode('/', jdtojulian(2459459));
echo "Year: $year, Month: $month, Day: $day";
// Outputs: Year: 2021, Month: 8, Day: 19Por que as datas juliana e gregoriana diferem
A mesma Contagem de Dias Julianos corresponde a um rótulo diferente em cada calendário. Para 2459459:
<?php
echo jdtojulian(2459459); // Outputs: 8/19/2021 (Julian calendar)
echo "\n";
echo jdtogregorian(2459459); // Outputs: 9/1/2021 (Gregorian calendar)A diferença de 13 dias entre 8/19 e 9/1 é exatamente o deslocamento atual entre os calendários juliano e gregoriano — ambas as linhas descrevem o mesmo instante no tempo.
Convertendo uma Data do Calendário Juliano de Volta para uma Contagem de Dias Julianos
Para fazer o caminho inverso — de uma data do calendário juliano de volta para uma Contagem de Dias Julianos — use juliantojd(). Ele recebe o mês, o dia e o ano e retorna um inteiro:
<?php
$jdc = juliantojd(8, 19, 2021);
echo $jdc; // Outputs: 2459459Como as duas funções são inversas, uma ida e volta retorna a data original:
<?php
echo jdtojulian(juliantojd(8, 19, 2021)); // Outputs: 8/19/2021Quando Usar Esta Função?
Você raramente precisará do calendário juliano para datas de aplicações cotidianas — para isso, prefira as APIs DateTime e date() do PHP, que funcionam no calendário gregoriano. jdtojulian() é útil quando você está:
- Trabalhando com registros históricos datados antes da reforma gregoriana de 1582 (ou em países que a adotaram muito mais tarde).
- Interagindo com dados astronômicos ou genealógicos que armazenam datas como Contagens de Dias Julianos.
- Convertendo entre sistemas de calendário onde a Contagem de Dias Julianos atua como um pivô neutro — por exemplo,
gregoriantojd()→ armazenar o inteiro →jdtojulian().
Nota: A extensão
calendardeve estar habilitada para que essas funções estejam disponíveis. Ela é incluída com o PHP e compilada por padrão na maioria das versões.
Conclusão
A função jdtojulian() converte uma Contagem de Dias Julianos em uma string de data no calendário juliano, enquanto juliantojd() realiza o inverso. Elas espelham o par gregoriano, jdtogregorian() e gregoriantojd(), razão pela qual a mesma contagem de dias gera dois rótulos de calendário diferentes. Para mais detalhes, consulte a documentação oficial de jdtojulian() e juliantojd().