date_sunrise
(PHP 5)
date_sunrise — Возвращает время рассвета для заданных дня и местоположения
Описание
$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
-
Временная метка (
timestamp
) дня, для которого определяется время рассвета. -
format
-
format
constantsконстанта описание пример SUNFUNCS_RET_STRING тип возвращаемого результата string 16:46 SUNFUNCS_RET_DOUBLE тип возвращаемого результата float 16.78243132 SUNFUNCS_RET_TIMESTAMP тип возвращаемого результата integer (временная метка) 1095034606 -
latitude
-
По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.
-
longitude
-
По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.
-
zenith
-
По умолчанию: date.sunrise_zenith
-
gmtoffset
-
Задается в часах.
Возвращаемые значения
Возвращает время восхода солнца в заданном формате
format
или FALSE
в случае возникновения ошибки.
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE
,
и/или ошибку уровня E_STRICT
или E_WARNING
при использовании системных
настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()
Список изменений
Версия | Описание |
---|---|
5.1.0 |
Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня |
Примеры
Пример #1 Пример использования date_sunrise()
<?php
/* расчет времени восхода солнца в Лиссабоне, Португалия
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
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с датой и временем
- Дата и Время
- 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
Коментарии
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
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
);
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