#33671 [Bgs->Opn]: sun_rise and sun_set don't return a GMT timestamp if one passes an offset

From: Date: Wed, 13 Jul 2005 00:36:02 +0000
Subject: #33671 [Bgs->Opn]: sun_rise and sun_set don't return a GMT timestamp if one passes an offset
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-81782@lists.php.net to get a copy of this message
 ID:               33671
 User updated by:  golf at dds dot nl
 Reported By:      golf at dds dot nl
-Status:           Bogus
+Status:           Open
 Bug Type:         Date/time related
 Operating System: Linux Debian
 PHP Version:      5.0.4
 New Comment:

I have also swaped lat and long and this solves my basic problem that
the hours where wrong, but one can say that the bug is still there
since my first suspision is correct, GMT offset is not used to
calculate anything, it changes the timestamp to something that looks
and feels like a timestamp but isn't since it isn't a GMT date/time
combo but the GMT date/time combo + the offset. Since this isn't
standard for timestamp I changed the status of this Bug to open...

The algorithm looks to work acourding to this:
http://williams.best.vwh.net/sunrise_sunset_algorithm.htm
Where one can read the last line to see it is just added...

My objection to the way the functions work probably won't make a change
list, but it is something to add as a note to the manual becouse it is
confusing (At least to me and perhaps more people).


Previous Comments:
------------------------------------------------------------------------

[2005-07-13 01:08:22] golf at dds dot nl

After re-reading the source in the bug-report I now see that I passed
$long and $lat where I should have passed $longitude, $latitude. I
changed the code and now every thing seems oke... 

Sorry for the hassle made by this report but I realy missed this typo.

Regards,

Golf

P.S. I tryd to add a comment to this bugreport (twice) but it didn't
show up, so if there are more than one...

------------------------------------------------------------------------

[2005-07-13 00:53:07] golf at dds dot nl

Description:
------------
With my current version of PHP5 (5.0.4-0.6.sarge.1 (Debian GNU/Linux) I
run into an error if I use date_sunrise and date_sunset. This happens
when I pass an GMT offset and results in a timestamp that has an offset
of +1 hour to the actual sun set/rise on that date. Since timestamps are
GMT/UTC and not bound to an timezone other that GMT/UTC this is wrong. I
say this since I believe the GMT offset one can pass to the before
mentioned functions is used in the calculation and the functions should
return a timestamp like any other so it can be used by date and gmdate
as those functions require a GMT/UTC timestamp...

B.t.w. I use the max difference for some further calculations in my
script, so there for the lage difference between astro and official
sunset's/rises...

Reproduce code:
---------------
$latitude = 28 + (1/60*17) + (1/60/60*54);
$longitude = (-(16 + (1/60*30) + (1/60/60*34)));
$astro = 108;
$official = (90 + (1/60*50));

echo "Local Tenerife time<br>\n";
echo "sunriseAstro = " . gmdate("M d Y H:i:s", date_sunrise(1121208238,
SUNFUNCS_RET_TIMESTAMP, $long, $lat, $astro, 1) + 60*60) . "<br>\n";
echo "sunriseOffical = " . gmdate("M d Y H:i:s",
date_sunrise(1121208238, SUNFUNCS_RET_TIMESTAMP, $long, $lat, $official
, 1) + 60*60) . "<br>\n";
echo "sunsetOffical = " . gmdate("M d Y H:i:s", date_sunset(1121208238,
SUNFUNCS_RET_TIMESTAMP, $long, $lat, $official, 1) + 60*60) . "<br>\n";
echo "sunsetAstro = " . gmdate("M d Y H:i:s", date_sunset(1121208238,
SUNFUNCS_RET_TIMESTAMP, $long, $lat, $astro, 1) + 60*60) . "<p>\n";


Expected result:
----------------
Local Tenerife time
sunriseAstro = Jul 12 2005 05:47:50
sunriseOffical = Jul 12 2005 07:02:02
sunsetOffical = Jul 12 2005 19:09:17
sunsetAstro = Jul 12 2005 20:23:27

Actual result:
--------------
Local Tenerife time
sunriseAstro = Jul 12 2005 06:47:50
sunriseOffical = Jul 12 2005 08:02:02
sunsetOffical = Jul 12 2005 20:09:17
sunsetAstro = Jul 12 2005 21:23:27


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33671&edit=1


Thread (11 messages)

« previous php.bugs (#81782) next »