PHP 8.1.0 RC 2 available for testing

date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunriseBelirtilen gün ve konum için şafak zamanını döndürür

Açıklama

date_sunrise(
    int $dönüş_biçimi = SUNFUNCS_RET_STRING,
    ?float $enlem = null,
    ?float $boylam = null,
    ?float $başucu = null,
    ?float $utc_farkı = null
): string|int|float|false

date_sunrise() işlevi, verilen gün (zamandamgası) ve konum için şafak zamanını döndürür.

Değiştirgeler

zamandamgası

Şafak zamanı öğrenilecek günün zamandamgası.

dönüş_biçimi

dönüş_biçimi sabitleri
sabit açıklama örnek
SUNFUNCS_RET_STRING Sonucu dizge olarak döndürür. 16:46
SUNFUNCS_RET_DOUBLE Sonucu gerçek sayı olarak döndürür. 16.78243132
SUNFUNCS_RET_TIMESTAMP Sonucu tamsayı (zaman damgası) olarak döndürür. 1095034606

enlem

Kuzey yarımküre öntanımlıdır. Güney yarımküre için negatif değer girilir. Ayrıca bakınız: date.default_latitude

boylam

Doğu yarımküre öntanımlıdır. Batı yarımküre için negatif değer girilir. Ayrıca bakınız: date.default_longitude

başucu

başucu, güneşin merkezi ile dünya yüzeyine dik bir çizgi arasındaki açıdır. Öntanımlı değer: date.sunrise_zenith

Bazı başucu açıları
Açı Açıklama
90°50' Gündoğumu: Güneşin görünür hale geldiği nokta.
96° Sivil alacakaranlık: Geleneksel olarak şafağın başlangıcını belirtmek için kullanılır.
102° Deniz alacakaranlığı: Ufkun denizde görünmeye başladığı nokta.
108° Astronomik alacakaranlık: Güneşin herhangi bir aydınlatmanın kaynağı olmaya başladığı nokta.

utc_farkı

Saat cinsinden belirtilir. dönüş_biçimi değeri SUNFUNCS_RET_TIMESTAMP ise utc_farkı yoksayılır.

Dönen Değerler

Başarılı olduğunda, dönüş_biçimi değiştirgesiyle belirlenen biçimde şafak zamanı, başarısızlık durumunda false döner. Başarısızlığın olası nedeni, yılın bir bölümünde kutup dairesinin içinde güneşin hiç doğmamasıdır.

Hatalar/İstisnalar

Bir tarih/zaman işlevine yapılan her çağrı eğer zaman dilimi ayarı geçerli değilse bir E_WARNING üretir. Ayrıca bakınız: date_default_timezone_set()

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 enlem, botlam, başucu ve utc_farkı artık null olabiliyor.

Örnekler

Örnek 1 - date_sunrise() örneği

<?php

/* İstanbul, Türkiye için şafak hesabı
Enlem: 41.01 Kuzey
Boylam: 28.58 Doğu
Başucu ~= 90
saat farkı: +2 GMT
*/

echo date("D M d Y"). ', şafak: ' .date_sunrise(time(), SUNFUNCS_RET_STRING41.0128.58902);

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Fri Dec 12 2008, şafak: 07:25

Örnek 2 - Güneşin doğmaması

<?php
$solstice 
strtotime('2017-12-21');
var_dump(date_sunrise($solsticeSUNFUNCS_RET_STRING69.245833, -53.537222));
?>

Yukarıdaki örneğin çıktısı:

bool(false)

Ayrıca Bakınız

  • date_sunset() - Verilen gün ve konum için günbatımı zamanını döndürür
  • 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

add a note add a note

User Contributed Notes 3 notes

up
3
nomail at nospam dot com
3 years ago
maybe I am wrong, but I think

SUNFUNCS_RET_TIMESTAMP     return GMT(0) time

SUNFUNCS_RET_STRING     Return local time
SUNFUNCS_RET_DOUBLE     Return local time
up
4
scottix at gmail dot com
7 years ago
If you are working in multiple timezones getting the offset from a date is a little tricky because you need it in hours.

<?php

$time
= new DateTime('now', new DateTimeZone('America/Los_Angeles'));

date_sunrise(
$time->getTimestamp(),
SUNFUNCS_RET_TIMESTAMP,
38.4,
-
9,
90,
$time->getOffset() / 3600
);
up
-6
jonathanNO dot kuhnSPAM at gmailNOSPAM dot com
11 years ago
After some searching, I finally found a website that can calculate the sun's zenith. Just look up your city's lat/long (remember, west/south are negative even if it doesn't show where you look up the lat/long) and the time of sunrise/sunset and use this site:

http://solardat.uoregon.edu/cgi-bin/SolarPositionCalculator.cgi

You have to enter in the sunrise/sunset times separately, but it works.
San Diego is:
Lat: 32.73
Long: -117.17
Sunrise Z.: 90.7379
Sunset Z.: 90.8880
To Top