yes SUNFUNCS_RET_TIMESTAMP does return GMT(0) time
so something like...
$arr = localtime(date_sunset(time(),SUNFUNCS_RET_TIMESTAMP,51.5,0)); // London
$hh = $arr[2];
$mm = $arr[1];
Will give figure out your localtime and daylight saving (BST)
(PHP 5, PHP 7, PHP 8)
date_sunset — Retorna a hora do pôr do sol de um dia e localização informada.
$timestamp
, int $format
= SUNFUNCS_RET_STRING
, float $latitude
= ini_get("date.default_latitude")
, float $longitude
= ini_get("date.default_longitude")
, float $zenith
= ini_get("date.sunset_zenith")
, float $gmt_offset
= 0
) : mixed
A função date_sunrise() retorna a hora do pôr do sol de um
dia (especificado como um timestamp
) e localização informada.
timestamp
O timestamp
do dia do pôr do sol
desejado.
format
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 integer (timestamp) | 1095034606 |
latitude
Padronizado ao Norte, passe o valor negativado para Sul.
Veja também: date.default_latitude
longitude
Padronizado a Leste, passe o valor negativado para Oeste.
Veja também: date.default_longitude
zenith
Default: date.sunset_zenith
gmtoffset
Especificado em horas.
Todas as chamadas a funções de data/hora gerarão um E_NOTICE
se o fuso horário não for válido, e/ou uma mensagem E_STRICT
ou E_WARNING
se utilizar as configurações do sistema ou a variável de ambiente
TZ. Veja também date_default_timezone_set()
Versão | Descrição |
---|---|
5.1.0 |
Agora lança erros |
Retorna a hora do pôr do sol no format
especificado em caso de
sucesso ou false
em caso de falha.
Exemplo #1 Exemplo da função date_sunset()
<?php
/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/
echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
?>
O exemplo acima irá imprimir algo similar à:
Mon Dec 20 2004, sunset time : 18:13
yes SUNFUNCS_RET_TIMESTAMP does return GMT(0) time
so something like...
$arr = localtime(date_sunset(time(),SUNFUNCS_RET_TIMESTAMP,51.5,0)); // London
$hh = $arr[2];
$mm = $arr[1];
Will give figure out your localtime and daylight saving (BST)
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
I use an IP to location database to determine the visitor's approximate latitude and longitude and then serve them a day or night color scheme based on whether it is before civil dawn or dusk. I've had problems when not specifying the timezone, specifically a 1 hour error, so I use GMT.
<?php
date_default_timezone_set("GMT");
function scheme() {
$sunrise = date_sunrise(time(), SUNFUNCS_RET_DOUBLE, $latitude, $longitude, 96, 0);
$sunset = date_sunset(time(), SUNFUNCS_RET_DOUBLE, $latitude, $longitude, 96, 0);
$now = date("H") + date("i") / 60 + date("s") / 3600;
if ($sunrise < $sunset)
if (($now > $sunrise) && ($now < $sunset)) return "day";
else return "night";
else
if (($now > $sunrise) || ($now < $sunset)) return "day";
else return "night";
}
?>