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

date_sun_info

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

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

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

function.date-sun-info.php

date_sun_info

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

date_sun_infoВраќа низа со информации за зајдисонце/изгрејсонце и почеток/крај на самракот

= NULL

date_sun_info(int $timestamp, float $latitude, float $longitude): array

Параметри

timestamp

Unix временски печат.

latitude

Географска ширина во степени.

longitude

Географска должина во степени.

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

Враќа низа чија структура е детално опишана во следниот список:

sunrise
Временскиот печат на изгрејсонцето (аголот на зенитот = 90°35').
sunset
Временскиот печат на зајдисонцето (аголот на зенитот = 90°35').
transit
Временскиот печат кога сонцето е во својот зенит, т.е. го достигнало својот највисок врв.
civil_twilight_begin
Почеток на граѓанскиот самрак (аголот на зенитот = 96°). Завршува во sunrise.
civil_twilight_end
Крај на граѓанскиот самрак (аголот на зенитот = 96°). Започнува во sunset.
nautical_twilight_begin
Почеток на поморскиот самрак (аголот на зенитот = 102°). Завршува во civil_twilight_begin.
nautical_twilight_end
Крај на поморскиот самрак (аголот на зенитот = 102°). Започнува во civil_twilight_end.
astronomical_twilight_begin
Почеток на астрономскиот самрак (аголот на зенитот = 108°). Завршува во nautical_twilight_begin.
astronomical_twilight_end
Крај на астрономскиот самрак (аголот на зенитот = 108°). Започнува во nautical_twilight_end.

Вредностите на елементите на низата се или UNIX временски печати, false ако сонцето е под соодветниот зенит за целиот ден, или true ако сонцето е над соодветниот зенит за целиот ден.

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

Верзија = NULL
7.2.0 Елементот zone од вратениот список сега претставува секунди наместо минути, а неговиот знак е инвертиран. На пример, -120 сега е 7200.

Примери

ако е овозможен колекторот за отпадоци, date_sun_info() example

<?php
$sun_info
= date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach (
$sun_info as $key => $val) {
echo
"$key: " . date("H:i:s", $val) . "\n";
}

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Пример #2 Поларна ноќ, со некоја обработка

<?php
$tz
= new \DateTimeZone('America/Anchorage');

$si = date_sun_info(strtotime("2022-12-21"), 70.21, -148.51);
foreach (
$si as $key => $value) {
echo
match (
$value) {
true => 'always',
false => 'never',
default =>
date_create("@{$value}")->setTimeZone($tz)->format( 'H:i:s T' ),
},
": {$key}",
"\n";
}

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

never: sunrise
never: sunset
12:52:18 AKST: transit
10:53:19 AKST: civil_twilight_begin
14:51:17 AKST: civil_twilight_end
09:01:47 AKST: nautical_twilight_begin
16:42:48 AKST: nautical_twilight_end
07:40:47 AKST: astronomical_twilight_begin
18:03:49 AKST: astronomical_twilight_end

Пример #3 Полноќно сонце (Тромсо, Норвешка)

<?php
$si
= date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
print_r($si);

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [sunrise] => 1
    [sunset] => 1
    [transit] => 1656240426
    [civil_twilight_begin] => 1
    [civil_twilight_end] => 1
    [nautical_twilight_begin] => 1
    [nautical_twilight_end] => 1
    [astronomical_twilight_begin] => 1
    [astronomical_twilight_end] => 1
)

Пример #4 Пресметување на должината на денот (Киев)

<?php
$si
= date_sun_info(strtotime('2022-08-26'), 50.45, 30.52);
$diff = $si['sunset'] - $si['sunrise'];
echo
"Length of day: ",
floor($diff / 3600), "h ",
floor(($diff % 3600) / 60), "s\n";

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Length of day: 13h 56s

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

TheFax
3 години пред
In the last example, conversion from seconds to Hour, Minutes, Seconds is wrong.
This is the correct verion:

<?php
$si = date_sun_info(strtotime('2022-08-26'), 50.45, 30.52);
$diff = $si['sunset'] - $si['sunrise'];  # $diff is measured in seconds.
echo "Length of day: ",
    floor($diff / 3600), "h",
    floor(($diff % 3600) / 60), "m",
    floor($diff % 60), "s\n";
?>

Output:
  Length of day: 13h53m15s
На оваа страница

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

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

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

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

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