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
(PHP 5, PHP 7, PHP 8)
date_sunrise — Retorna a hora do nascer do sol para um dia e uma localicação informados
Esta função foi DESCONTINUADA desde o PHP 8.1.0. Confiar nesta função é altamente desencorajado. Use date_sun_info() no lugar.
$timestamp
,$returnFormat
= SUNFUNCS_RET_STRING
,$latitude
= null
,$longitude
= null
,$zenith
= null
,$utcOffset
= null
A função date_sunrise() retorna a hora do nascer do sol para um
dia (especificado como um timestamp
) e uma localização informados.
timestamp
O timestamp
do nascer do sol do dia
desejado.
returnFormat
Constante | Descrição | Exemplo |
---|---|---|
SUNFUNCS_RET_STRING | Retorna o resultado como uma string | 16:46 |
SUNFUNCS_RET_DOUBLE | Retorna o resultado como um float | 16.78243132 |
SUNFUNCS_RET_TIMESTAMP | Retorna o resultado como um int (timestamp) | 1095034606 |
latitude
Padronizado para o norte, passe um valor negativo para o sul. Veja também: date.default_latitude
longitude
Padronizado para o leste, passe um valor negativado para o oeste. Veja também: date.default_longitude
zenith
zenith
é o ângulo entre o centro do sol
e uma linha perpendicular à superfície da Terra. É padronizado para
date.sunrise_zenith
Ângulo | Descrição |
---|---|
90°50' | Nascer do sol: o ponto onde o sol se torna visível. |
96° | Amanhecer civil: convencionado para significar o início do amanhecer. |
102° | Amanhecer náutico: o ponto no qual o horizonte começa a ficar visível no mar. |
108° | Amanhecer astronômico: o ponto no qual o sol começa a se tornar fonte de iluminação. |
utcOffset
Especificado em horas.
O parâmetro utcOffset
é ignorado se
returnFormat
for
SUNFUNCS_RET_TIMESTAMP
.
Retorna o horário do nascer do sol no returnFormat
especificado
em caso de sucesso ou false
em caso de falha. Um potencial motivo para falha é quando o
sol não nasce, o que acontece dentro dos círculos polares durante parte
do ano.
Toda chamada a uma função de data/hora gerará um E_WARNING
se o fuso horário não for válido. Veja também date_default_timezone_set()
Versão | Descrição |
---|---|
8.1.0 | Esta função foi descontinuada em favor de date_sun_info(). |
8.0.0 |
latitude , longitude ,
zenith e utcOffset agora podem ser nulos.
|
Exemplo #1 Exemplo da função date_sunrise()
<?php
/* Calcula o nascer do sol em Lisboa, Portugal
Latitude: 38.4 norte
Longitude: 9 oeste
Zênite ~= 90
deslocamento UTC: +01:00
*/
echo date("D M d Y"). ', horário do nascer do sol : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
?>
O exemplo acima produzirá algo semelhante a:
Mon Dec 20 2004, horário do nascer do sol : 08:54
Exemplo #2 Sem nascer do sol
<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>
O exemplo acima produzirá:
bool(false)
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
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
);
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