- date_sunrise
- Description
- Parameters
- Return Values
- Errors/Exceptions
- Changelog
- Examples
- date_sunrise
- Список параметров
- Возвращаемые значения
- Ошибки
- Список изменений
- Примеры
- date_sun_info
- Список изменений
- Примеры
- Смотрите также
- User Contributed Notes 1 note
- Date_sunrise()
- How to Use the PHP date_sunrise() Function
- Examples of Using the PHP date_sunrise() Function
- Mermaid Diagram: Sunrise Calculation Process
- Conclusion
date_sunrise
This function has been DEPRECATED as of PHP 8.1.0. Relying on this function is highly discouraged. Use date_sun_info() instead.
Description
date_sunrise (
int $timestamp ,
int $returnFormat = SUNFUNCS_RET_STRING ,
? float $latitude = null ,
? float $longitude = null ,
? float $zenith = null ,
? float $utcOffset = null
): string | int | float | false
date_sunrise() returns the sunrise time for a given day (specified as a timestamp ) and location.
Parameters
The timestamp of the day from which the sunrise time is taken.
constant | description | example |
---|---|---|
SUNFUNCS_RET_STRING | returns the result as string | 16:46 |
SUNFUNCS_RET_DOUBLE | returns the result as float | 16.78243132 |
SUNFUNCS_RET_TIMESTAMP | returns the result as int (timestamp) | 1095034606 |
latitude
Defaults to North, pass in a negative value for South. See also: date.default_latitude
Defaults to East, pass in a negative value for West. See also: date.default_longitude
zenith is the angle between the center of the sun and a line perpendicular to earth’s surface. It defaults to date.sunrise_zenith
Angle | Description |
---|---|
90°50′ | Sunrise: the point where the sun becomes visible. |
96° | Civil twilight: conventionally used to signify the start of dawn. |
102° | Nautical twilight: the point at which the horizon starts being visible at sea. |
108° | Astronomical twilight: the point at which the sun starts being the source of any illumination. |
utcOffset
Specified in hours. The utcOffset is ignored, if returnFormat is SUNFUNCS_RET_TIMESTAMP .
Return Values
Returns the sunrise time in a specified returnFormat on success or false on failure. One potential reason for failure is that the sun does not rise at all, which happens inside the polar circles for part of the year.
Errors/Exceptions
Every call to a date/time function will generate a E_WARNING if the time zone is not valid. See also date_default_timezone_set()
Changelog
Version | Description |
---|---|
8.1.0 | This function has been deprecated in favor of date_sun_info() . |
8.0.0 | latitude , longitude , zenith and utcOffset are nullable now. |
Examples
Example #1 date_sunrise() example
/* calculate the sunrise time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/
echo date ( «D M d Y» ). ‘, sunrise time : ‘ . date_sunrise ( time (), SUNFUNCS_RET_STRING , 38.4 , — 9 , 90 , 1 );
The above example will output something similar to:
Mon Dec 20 2004, sunrise time : 08:54
Example #2 No sunrise
$solstice = strtotime ( ‘2017-12-21’ );
var_dump ( date_sunrise ( $solstice , SUNFUNCS_RET_STRING , 69.245833 , — 53.537222 ));
?>?php
The above example will output:
date_sunrise
mixed date_sunrise ( int $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.sunrise_zenith») [, float $gmt_offset = 0 ]]]]] )
date_sunrise() возвращает время рассвета для определенных дня (заданного аргументом timestamp ) и местоположения.
Список параметров
Временная метка ( timestamp ) дня, для которого определяется время рассвета.
константа | описание | пример |
---|---|---|
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46 |
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132 |
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата integer (временная метка) | 1095034606 |
По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.
По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.
По умолчанию: date.sunrise_zenith
Возвращаемые значения
Возвращает время восхода солнца в заданном формате format или FALSE в случае возникновения ошибки.
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE , и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ . Смотрите также date_default_timezone_set()
Список изменений
Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE .
Примеры
Пример #1 Пример использования date_sunrise()
/* расчет времени восхода солнца в Лиссабоне, Португалия
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/
echo date ( «D M d Y» ). ‘, время восхода солнца : ‘ . date_sunrise ( time (), SUNFUNCS_RET_STRING , 38.4 , — 9 , 90 , 1 );
Результатом выполнения данного примера будет что-то подобное:
Mon Dec 20 2004, время восхода солнца : 08:54
date_sun_info
Возвращает массив в случае успешного выполнения или false в случае возникновения ошибки. Структура массива подробно описана в следующем списке:
sunrise Временная метка восхода солнца (зенитный угол = 90°35′). sunset Временная метка заката солнца (зенитный угол = 90°35′). transit Временная метка, когда солнце находится в своём зените, то есть достигло самой верхней точки. civil_twilight_begin Начало гражданского рассвета (зенитный угол = 96°). Оно заканчивается на sunrise . civil_twilight_end Конец гражданского заката (зенитный угол = 96°). Оно начинается на sunset . nautical_twilight_begin Начало навигационного рассвета (зенитный угол = 102°). Оно заканчивается civil_twilight_begin . nautical_twilight_end Конец навигационного заката (зенитный угол = 102°). Оно начинается на civil_twilight_end . astronomical_twilight_begin Начало астрономического рассвета (зенитный угол = 108°). Оно заканчивается на nautical_twilight_begin . astronomical_twilight_end Конец астрономического заката (зенитный угол = 108°). Оно начинается на nautical_twilight_end .
Значения элементов массива — либо временная метка UNIX, false , если солнце находится ниже соответствующего зенита в течение всего дня, или true , если солнце находится выше соответствующего зенита в течение всего дня.
Список изменений
Версия | Описание |
---|---|
7.2.0 | Расчёт был исправлен с учётом местной полуночи вместо местного полудня, что несколько изменяет результаты. |
Примеры
Пример #1 Пример использования date_sun_info()
$sun_info = date_sun_info ( strtotime ( «2006-12-12» ), 31.7667 , 35.2333 );
foreach ( $sun_info as $key => $val ) echo » $key : » . date ( «H:i:s» , $val ) . «\n» ;
>
?>?php
Результат выполнения данного примера:
sunrise: 05:52:11 sunset: 15:41:21 transit: 10:46:46 civil_twilight_begin: 05:24:08 civil_twilight_end: 16:09:24 nautical_twilight_begin: 04:52:25 nautical_twilight_end: 16:41:06 astronomical_twilight_begin: 04:21:32 astronomical_twilight_end: 17:12:00
Пример #2 Полярная ночь с некоторой обработкой
$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» ;
> ?>?php
Результат выполнения данного примера:
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
Пример #3 Полуночное солнце (Тромсё, Норвегия)
Результат выполнения данного примера:
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 )
Пример #4 Вычисление продолжительности дня (Киев)
$si = date_sun_info ( strtotime ( ‘2022-08-26’ ), 50.45 , 30.52 );
$diff = $si [ ‘sunset’ ] — $si [ ‘sunrise’ ];
echo «Продолжительность дня: » ,
floor ( $diff / 3600 ), » ч. » ,
floor (( $diff % 3600 ) / 60 ), » сек.\n» ;
?>?php
Результат выполнения данного примера:
Продолжительность дня: 13 ч. 56 сек.
Смотрите также
- date_sunrise() — Возвращает время рассвета для заданных дня и местоположения
- date_sunset() — Возвращает время захода солнца для заданных дня и местоположения
User Contributed Notes 1 note
In the last example, conversion from seconds to Hour, Minutes, Seconds is wrong.
This is the correct verion:
$si = date_sun_info ( strtotime ( ‘2022-08-26’ ), 50.45 , 30.52 );
$diff = $si [ ‘sunset’ ] — $si [ ‘sunrise’ ]; # $diff is measured in seconds.
echo «Length of day: » ,
floor ( $diff / 3600 ), «h» ,
floor (( $diff % 3600 ) / 60 ), «m» ,
floor ( $diff % 60 ), «s\n» ;
?>
Output:
Length of day: 13h53m15s
- Функции даты и времени
- checkdate
- date_add
- date_create_from_format
- date_create_immutable_from_format
- date_create_immutable
- date_create
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse_from_format
- date_parse
- date_sub
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- date
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- strtotime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get
Date_sunrise()
PHP is a widely used programming language that is commonly used to create dynamic web applications. The date_sunrise() function is one of the many built-in functions that are available in PHP. This function is used to calculate the time of sunrise for a given date and location.
The date_sunrise() function is an essential tool for developers who are building applications that require sunrise and sunset times. This function can be used to calculate the sunrise and sunset times for any location on Earth, based on its latitude and longitude.
How to Use the PHP date_sunrise() Function
Using the date_sunrise() function is relatively simple. The function takes four parameters: the timestamp, latitude, longitude, and zenith. The timestamp parameter is the date and time for which you want to calculate the sunrise time. The latitude and longitude parameters specify the location for which you want to calculate the sunrise time. The zenith parameter specifies the angle between the center of the sun and the horizon.
To use the date_sunrise() function, you first need to obtain the latitude and longitude coordinates for the location you are interested in. You can use online tools such as Google Maps or Geonames to obtain this information.
Once you have the latitude and longitude coordinates, you can call the date_sunrise() function with the appropriate parameters. The function will return the time of sunrise for the specified location and date.
Examples of Using the PHP date_sunrise() Function
Here are some examples of using the date_sunrise() function:
Example 1: Calculating the sunrise time for today at a specific location
$timestamp = time(); $latitude = 37.7749; // San Francisco latitude $longitude = -122.4194; // San Francisco longitude $zenith = ini_get("date.sunrise_zenith"); $sunrise_time = date_sunrise($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith); echo "Today's sunrise time for San Francisco is $sunrise_time."; ?>
Example 2: Calculating the sunrise time for a specific date at a specific location
$date = "2023-03-03"; $timestamp = strtotime($date); $latitude = 40.7128; // New York City latitude $longitude = -74.0060; // New York City longitude $zenith = ini_get("date.sunrise_zenith"); $sunrise_time = date_sunrise($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith); echo "The sunrise time for New York City on $date is $sunrise_time."; ?>
Mermaid Diagram: Sunrise Calculation Process
graph LR; A[Enter latitude and longitude coordinates] --> B; B -- Returns the sunrise time --> C[Display sunrise time];
Conclusion
In conclusion, the date_sunrise() function is a powerful tool for developers who need to calculate the sunrise time for a given location and date. By using this function, developers can build applications that require accurate sunrise and sunset times.
With our comprehensive and detailed article on the PHP date_sunrise() function, we are confident that your website will outrank your competitors on Google search results.