|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2019-07-09 19:34 UTC] stefano dot borghi at gmx dot com
Description: ------------ In PHP >= v7.2 the result of the `date_sun_info` function, and similarly the other sun related functions, return a different value for sunrise and sunset compared to the previous PHP versions. I'm not sure if this is an expected change due to a correction of a previously wrong result or if it's an actual bug. In any case this change is not reported in the documentation. Test script: --------------- // see https://3v4l.org/31aER function sunTimes($lat, $long, $date) { date_default_timezone_set('UTC'); $sun_info = date_sun_info(strtotime($date), $lat, $long); $sunrise = date("H:i:s", $sun_info['sunrise']); $sunset = date("H:i:s", $sun_info['sunset']); return "on $date sun rises at $sunrise and sets at $sunset"; } echo sunTimes(51.5, 0, '2018-03-14'); // ~London Expected result: ---------------- // PHP <= v7.1.0 'on 2018-03-14 sun rises at 06:14:51 and sets at 18:03:16' Actual result: -------------- // PHP >= v7.2.4 'on 2018-03-14 sun rises at 06:15:59 and sets at 18:02:24' PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 13:00:01 2025 UTC |
It seems like PHP 7.2 has fixed another issue when dealing with different timezones. Test script: ------------ <?php $longitude = 12.7645; $latitude = 48.9825; date_default_timezone_set('America/New_York'); $dateTime = new DateTime('2019-07-08'); $sunrise = date_sunrise($dateTime->getTimestamp(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90 + 5 / 6); var_dump($sunrise); date_default_timezone_set('UTC'); $dateTime = new DateTime('2019-07-08'); $sunrise = date_sunrise($dateTime->getTimestamp(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90 + 5 / 6); var_dump($sunrise); date_default_timezone_set('Australia/Brisbane'); $dateTime = new DateTime('2019-07-08'); $sunrise = date_sunrise($dateTime->getTimestamp(), SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90 + 5 / 6); var_dump($sunrise); Output for 7.2.0 - 7.4.1 ------------------------ int(1562555526) int(1562555526) int(1562555526) Output for 5.3.0 - 7.1.33 ------------------------ int(1562555561) int(1562555552) int(1562555531)