W3docs

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): string

Aceita 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/2021

O 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: 19

Por 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: 2459459

Como 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/2021

Quando 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 calendar deve 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().

Prática

Prática
Qual é o papel da função jdtojulian() no PHP?
Qual é o papel da função jdtojulian() no PHP?
Was this page helpful?