jdtounix

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtounixConvierte un día Juliano en un timestamp UNIX

Descripción

jdtounix(int $julian_day): int

Devuelve un timestamp UNIX correspondiente al día Juliano julian_day o false si julian_day no está dentro del intervalo permitido. El tiempo devuelto es UTC.

Parámetros

julian_day

El número de días Julianos, comprendido entre 2440588 y 106751993607888 en sistemas de 64 bits, o comprendido entre 2440588 y 2465443 en sistemas de 32 bits.

Valores devueltos

El timestamp UNIX para el inicio (medianoche, no mediodía) del día Juliano dado.

Errores/Excepciones

Si julian_day está fuera del intervalo permitido, se lanza una ValueError.

Historial de cambios

Versión Descripción
8.0.0 Esta función ya no devuelve false en caso de error, sino que lanza una ValueError en su lugar.
7.3.24, 7.4.12 El límite superior del parámetro julian_day ha sido extendido. Antes, era de 2465342 según la arquitectura.

Ver también

  • unixtojd() - Convierte un timestamp UNIX en un día Juliano

add a note

User Contributed Notes 5 notes

up
6
fabio at llgp dot org
18 years ago
If you need an easy way to convert a decimal julian day to an unix timestamp you can use:

$unixTimeStamp = ($julianDay - 2440587.5) * 86400;

2440587.5 is the julian day at 1/1/1970 0:00 UTC
86400 is the number of seconds in a day
up
3
Anonymous
20 years ago
Warning: the calender functions involving julian day operations seem to ignore the decimal part of the julian day count.

This means that the returned date is wrong 50% of the time, since a julian day starts at decimal .5 . Take care!!
up
0
seb at carbonauts dot com
21 years ago
Remember that unixtojd() assumes your timestamp is in GMT, but jdtounix() returns a timestamp in localtime.

This fooled me a few times.

So if you have:

$timestamp1 = time();
$timestamp2 = jdtounix(unixtojd($timestamp1));

Unless your localtime is the same as GMT, $timestamp1 will not equal $timestamp2.
up
-1
pipian at pipian dot com
22 years ago
Remember that UNIX timestamps indicate a number of seconds from midnight of January 1, 1970 on the Gregorian calendar, not the Julian Calendar.
up
-2
Saeed Hubaishan
10 years ago
unixtojd() assumes that your timestamp is in GMT, but jdtounix() returns a timestamp in localtime.
so
<?php
$d1
=jdtogregorian(unixtojd(time()));
$d2= gmdate("m/d/Y");
$d3=date("m/d/Y");
?>
$d1 always equals $d2 but $d1 may differ from $d3
To Top