函数date_sunrise()返回错误的时间并可能返回结果

| 关于此功能,我有两件事不了解: 1.使用SUNFUNCS_RET_TIMESTAMP格式时不考虑偏移。例如,如果我使用SUNFUNCS_RET_STRING格式并使用以下代码:
$lat = 46.055556;    // Latitude (Ljubljana).
$long = 14.508333;    // Longitude (Ljubljana).
$offset = 2;    // Difference between GMT and local time in hours.
$zenith = 90 + 50 / 60;

echo \"<br><p>Sunrise: \" . date_sunrise(time(), SUNFUNCS_RET_STRING, $lat, $long, $zenith, $offset);
echo \"<br>Sunset: \" . date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $long, $zenith, $offset);
然后它将以某种方式显示正确的answear(根据我的意思,在第二点中将进行解释):   日出:05:15   日落:20:42 现在,如果我使用SUNFUNCS_RET_TIMESTAMP并将其转换为具有日期date()函数的日期的字符串表示形式:
$lat = 46.055556;    // Latitude (Ljubljana).
$long = 14.508333;    // Longitude (Ljubljana).
$offset = 2;    // Difference between GMT and local time in hours.
$zenith = 90 + 50 / 60;

$dateSunRise = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $lat, $long, $zenith, $offset);
$dateSunSet = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $lat, $long, $zenith, $offset);

echo \"<br><p>Sunrise: \" . date(\"H:i\", $dateSunRise);
echo \"<br><p>Sunrise: \" . date(\"H:i\", $dateSunSet);
我得到这个结果:   日出:03:15   日出:18:42 我检查了时间戳,肯定返回了错误,这就是为什么我不明白,因为我定义的偏移量与使用SUNFUNCS_RET_STRING的上一个示例相同。 2.在我写的第一点上,它以某种方式显示了正确的answear,这是我的意思的解释。我们的官方气象机构ARSO每天在其页面上更新有关日出和日落的信息。该页面可以在此链接上找到(很抱歉,因为它不是英文的)。最重要的是,对于我们的首都(卢布尔雅那),它具有以下信息:   日出:5:18   日出:20:41 我在使用date_sunrise和date_sunset函数得到的地方是:   日出:05:15   日落:20:42 参数与第一个点相同(纬度,经度,偏移,天顶)。现在,纬度和经度肯定是正确的(已通过GeoHack检查卢布尔雅那)。我开始认为这种差异来自天顶参数。但是我在互联网上搜索,上面写着:   天顶的最佳总体数字是真实日出/日落时90+(50/60)度 我不知道为什么会出现这种差异,这两个函数是否可能返回错误的结果?     
已邀请:
        使用时间戳记时,它们几乎总是UNIX时间戳记,这意味着它们是以UTC给出的。与它们一起使用时,您必须在计算结束时将它们转换为您自己的时区。为了您的目的,您可能只需要SUNFUNCS_RET_STRING。 对于第二点,天顶在计算日出和日落的确切分钟数方面起着很大的作用。
90+(50/60)
只是一个估算。在线上有一些计算器,可以为您提供更好的数字以用于坐标,并且日出和日落时它们将有所不同。 以下代码将为您提供在卢布尔雅那寻找的电话号码:
$lat = 46.055556;    // Latitude (Ljubljana).
$long = 14.508333;    // Longitude (Ljubljana).
$offset = 2;    // Difference between GMT and local time in hours.

$rise_zenith = 90+(25/60);
$set_zenith = 90+(40/60);

echo \"<br>Sunrise: \" . date_sunrise(time(), SUNFUNCS_RET_STRING, $lat, $long, $rise_zenith, $offset);
echo \"<br>Sunset: \" . date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $long, $set_zenith, $offset);
    

要回复问题请先登录注册