PHP.mk документација

unixtojd

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.unixtojd.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.unixtojd.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
unixtojd

Референца за `function.unixtojd.php` со подобрена типографија и навигација.

function.unixtojd.php

unixtojd

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

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

= NULL

unixtojd(?int $timestamp = null): int|false

Претвори Unix временски печат во Јулијански ден timestamp Враќа Јулијански ден за Unix timestamp (секунди од 1.1.1970), или за тековниот ден ако не е

Параметри

timestamp

дадено. Во секој случај, времето се смета како локално време (не UTC).

Вратени вредности

Unix временски печат за претворање. false при неуспех.

Дневник на промени

Верзија = NULL
8.0.0 timestamp сега е null.

Види Исто така

  • jdtounix() Јулијански број на ден како цел број, или

Белешки од корисници 6 белешки

- Претвори Јулијански ден во Unix временски печат
19 години пред
If you need an easy way to convert an unix timestamp to a decimal julian day you can use:

$julianDay = $unixTimeStamp / 86400 + 2440587.5;

86400 is the number of seconds in a day;
2440587.5 is the julian day at 1/1/1970 0:00 UTC.
Анонимен
19 години пред
Its clearly stated that this function returns the Julian Day, not Julian Day + time.

If you want the time with it you will have to do something like:

$t=time();
$jd=unixtojd($t)+($t%60*60*24)/60*60*24;
fabio at llgp dot org
пред 2 години
unixtojd is slow.
Direct arithmetics calculations are faster and still coherent with original unixtojd.

Feel free to add a test on $timestamp to set it to time() when $timestamp is null.

function fast_unixtojd($timestamp){
    return intval($timestamp / 86400 + 2440588);
}

$time = time();
$t_unixtojd = 0;
$t_fast_unixtojd = 0;
for ($t = $time - 240 * 3600; $t < $time; $t++) {
    $time1 = microtime(true);
    $a = unixtojd($t);
    $time2 = microtime(true);
    $b = fast_unixtojd($t);
    $time3 = microtime(true);
    if ($a != $b) {
        echo "$a $b $t\n";
        break;
    }
    $t_unixtojd += $time2 - $time1;
    $t_fast_unixtojd += $time3 - $time2;
}
echo "unixtojd: $t_unixtojd sec\nfast_unixtojd: $t_fast_unixtojd sec\n";

unixtojd: 0.42854166030884 sec
fast_unixtojd: 0.13218021392822 sec
unixtojd at isslow dot com
пред 18 години
according to http://www.decimaltime.hynes.net/dates.html#jd and reading "X. Calendar Functions" on this side, it seems that php "jd" is precisely mean as "Chronological Julian Day" (should it be named cjd, and primarily strictly mentioned - isn't it?), used for covnersion between calendar systems. Than it's ok (but Incomplete manual is strongly confusing here IMHO).
Even that, cJD is adjusted to a local time, so... I am rather babeled now, so nothing else :-).
unixtojd at isslow dot com
пред 18 години
This is unusable. Julian Day start at noon, not midnight. It's better to use Fabio solution (however there is a lurk problem with leap second).

<?php
function mmd($txt, $str_time) {
   $t = strtotime($str_time);
   $j = unixtojd($t);
   $s = gmstrftime('%D %T %Z', $t);
   $j_fabio = $t / 86400 + 2440587.5;

   printf("${txt} => (%s) %s, %s U, %s J, or %s J<br>\n", $str_time, $s, $t, $j, $j_fabio);
}

//$xt = strtotime("1.1.1970 15:00.00 GMT");
$sam = "9.10.1995 02:00.01 GMT";
$spm = "9.10.1995 22:00.01 GMT";

// unixtojd for $spm returns 2450000 (OK), but for $sam returns 2450000 too! (it is wrong).
mmd("am", $sam);  // should be 2449999 (+ 0.58334)
mmd("pm", $spm);  // should be 2450000 (+ 0.41668)
?>

reference
unix time, and UTC, TAI, ntp, ... problems: http://en.wikipedia.org/wiki/Unix_time
Julian Date Converter: http://aa.usno.navy.mil/data/docs/JulianDate.html
history overview: http://parris.josh.com.au/humour/work/17Nov1858.shtml
hrabi at linuxwaves dot com
пред 22 години
Also note that epoch is in UTC time (epoch is a specific point in time - epoch is not different for every time zone), so be aware of timezone complexities.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.