略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: date_sunrise

2024-11-15

date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunrise返回给定的日期与地点的日出时间

说明

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
): mixed

date_sunrise() 返回给定的日期(以 timestamp 指定)与地点的日出时间。

参数

timestamp

timestamp所在日期的日出时间。

format

format 常量
常量 说明 取值举例
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 错误。参见 date_default_timezone_set()

更新日志

版本 说明
5.1.0

现在发布 E_STRICTE_NOTICE 时区错误。

范例

示例 #1 date_sunrise() 例子

<?php

/* 计算葡萄牙里斯本的日出时间
Latitude:  北纬 38.4 度
Longitude: 西经 9 度
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING38.4, -9901);

?>

以上例程的输出类似于:

Mon Dec 20 2004, sunrise time : 08:54

参见

add a noteadd a note

User Contributed Notes 3 notes

up
3
scottix at gmail dot com
8 years ago
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
);
up
1
nomail at nospam dot com
4 years ago
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
up
-7
jonathanNO dot kuhnSPAM at gmailNOSPAM dot com
12 years ago
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

官方地址:https://www.php.net/manual/en/function.date-sunrise.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3