date_sun_info în PHP

Dată și oră PHP 5.1.2+

Calculează orele de răsărit, apus, amiază solară și crepuscul pentru o zi și o locație.

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

Ce face date_sun_info

date_sun_info returnează timestamp-uri pentru sunrise (răsărit), sunset (apus), transit (amiaza solară) și cele trei feluri de crepuscul: civil, nautic și astronomic (*_begin, *_end).

Când soarele nu apune deloc (zi polară), valoarea este true; când nu răsare deloc, este false. Pentru afișare, formatează timestamp-urile cu date în fusul orar al locului.

Parametri

Parametru Descriere
$timestamp O oră din ziua dorită (de preferat amiaza).
$latitude Latitudinea, în grade (nord pozitiv).
$longitude Longitudinea, în grade (est pozitiv).

Ce returnează

Un tablou cu timestamp-uri (sau true/false pentru zilele polare).

Exemple

Exemplul 1: Răsărit și apus la Iași

<?php
date_default_timezone_set("Europe/Bucharest");

$soare = date_sun_info(mktime(12, 0, 0, 10, 19, 2026), 47.1585, 27.6014);

echo "Răsărit: " . date("H:i", $soare["sunrise"]) . "\n";
echo "Apus:    " . date("H:i", $soare["sunset"]) . "\n";
echo "Amiază:  " . date("H:i", $soare["transit"]);

Rezultat

Răsărit: 07:33
Apus:    18:15
Amiază:  12:54

Exemplul 2: Zi polară în Svalbard

<?php
$soare = date_sun_info(gmmktime(12, 0, 0, 6, 21, 2026), 78.22, 15.65);

var_dump($soare["sunrise"], $soare["sunset"]);

Rezultat

bool(true)
bool(true)

Greșeli frecvente

  • Formatezi direct rezultatul cu date fără să verifici tipul. La latitudini mari, valoarea poate fi true sau false, nu timestamp.

Comenzi înrudite

  • date: Afișează data și ora într-un anumit format.
  • mktime: Construiește timestamp-ul Unix pentru o dată și o oră anume, din ore, minute, secunde, lună, zi și an.
  • timezone_location_get: Returnează codul țării, coordonatele și comentariul asociate unui fus orar.