(PHP 5 >= 5.1.2, PHP 7, PHP 8)
date_sun_info — Güneşin doğuşu/batışı ve alacakaranlık başlangıcı/sonu hakkında bilgi içeren bir dizi döndürür
zaman_damgasıZaman damgası.
enlemEnlem derecesi.
boylamBoylam derecesi.
Başarılı olduğunda dönen dizinin yapısı:
sunrisesunsettransitcivil_twilight_beginsunrise) biter.
civil_twilight_endsunset) başlar.
nautical_twilight_begincivil_twilight_begin) biter.
nautical_twilight_endcivil_twilight_end'de başlar.
astronomical_twilight_beginnautical_twilight_begin'de biter.
astronomical_twilight_endnautical_twilight_end'de başlar.
Dizi elemanlarının değerleri, ya UNIX zaman damgasıdır, ya da güneş
günün tamamında ilgili başucunun altındaysa false, güneş günün tamamında
ilgili başucunun üstündeyse true'dur.
| Sürüm: | Açıklama |
|---|---|
| 7.2.0 | Hesaplama, yerel öğle yerine yerel gece yarısı olarak düzeltildi, bu da sonuçları biraz değiştirdi. |
Örnek 1 - date_sun_info() örneği
<?php
$sun_info = date_sun_info(strtotime("2008-12-12"), 36.55, 32.03);
foreach ($sun_info as $key => $val) {
echo "$key: " . date("H:i:s", $val) . "\n";
}
?>Yukarıdaki örneğin çıktısı:
sunrise: 06:54:58 sunset: 16:36:54 transit: 11:45:56 civil_twilight_begin: 06:26:20 civil_twilight_end: 17:05:32 nautical_twilight_begin: 05:54:03 nautical_twilight_end: 17:37:49 astronomical_twilight_begin: 05:22:39 astronomical_twilight_end: 18:09:14
Örnek 2 - Biraz işlemle Kutup gecesi
<?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";
}
?>Yukarıdaki örneğin çıktısı:
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
Örnek 3 - Gece yarısı güneşi (Tromsø, Norveç)
<?php
$si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
print_r($si);
?>Yukarıdaki örneğin çıktısı:
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
)
Örnek 4 - Gün uzunluğunun hesaplanması (Alanya)
<?php
$si = date_sun_info(strtotime('2022-06-21'), 36.5, 32);
$diff = $si['sunset'] - $si['sunrise'];
echo "Length of day: ",
floor($diff / 3600), "h ",
floor(($diff % 3600) / 60), "s\n";
?>Yukarıdaki örneğin çıktısı:
Length of day: 14h 42s