php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #53148 date_sunrise and date_sunset show tomorrow's times for some timezones.
Submitted: 2010-10-25 03:44 UTC Modified: 2017-10-24 07:52 UTC
Votes:5
Avg. Score:4.6 ± 0.8
Reproduced:5 of 5 (100.0%)
Same Version:1 (20.0%)
Same OS:3 (60.0%)
From: sec at mboca dot com Assigned:
Status: Open Package: Date/time related
PHP Version: 5.2.14 and 5.3.3 OS: linux and windows
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: sec at mboca dot com
New email:
PHP Version: OS:

 

 [2010-10-25 03:44 UTC] sec at mboca dot com
Description:
------------
when you try to get sunrise and sunset times from the area that have GMT +12 or over.  the sunrise and sunset times will be listed for next day.  
The sunrise and sunset times should be listed for today.  

http://weatherpixel.com/bug.php
the source code is at http://weatherpixel.com/bug.php?src=show

one of the examples that the Fiji Island times would only show for tomorrow and 
my script would show it as night as always. 
http://weatherpixel.com/sunrise_gmt.php?station=NFFN  



Here is my configure line for linux: 

./configure --enable-sockets --enable-calendar --with-curl=/usr/lib/ --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-ttf --enable-gd-native-ttf --with-gettext --with-freetype-dir=/usr/local/lib --without-sqlite --without-pdo-sqlite  --with-apxs2=/usr/local/apache2/bin/apxs




Test script:
---------------
here is php script that reproduce the date_sunrise
http://weatherpixel.com/bug.php?src=show



Expected result:
----------------
the times for +12 GMT and more than +12 GMT will always show tomorrow's sunrise and sunset times.  



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-10-28 06:32 UTC] sec at mboca dot com
This bug also happens on php 5.3.3 with same configure line in my post above.
 [2010-10-28 06:33 UTC] sec at mboca dot com
-PHP Version: 5.2.14 +PHP Version: 5.2.14 and 5.3.3
 [2010-10-28 06:33 UTC] sec at mboca dot com
It happens on php 5.3.3 too.
 [2010-10-31 10:32 UTC] sec at mboca dot com
-Package: Math related +Package: *Calendar problems
 [2010-10-31 10:32 UTC] sec at mboca dot com
I figured out a workaround to this bug. 
you have to add -1 day to subtract one day from sunrise and sunset times. 


if ($offset >= 12 && strcmp(date_default_timezone_get(), "Pacific/Tarawa") != 0) {
echo "+12 GMT workaround done<br>";
$sunrise = strtotime('-1 day', $sunrise);
$sunset = strtotime('-1 day', $sunset);
$csunrise = strtotime('-1 day', $csunrise);
$csunset = strtotime('-1 day', $csunset);
$nsunrise = strtotime('-1 day', $nsunrise);
$nsunset = strtotime('-1 day', $nsunset);
$asunrise = strtotime('-1 day', $asunrise);
$asunset = strtotime('-1 day', $asunset);
}

I need to test on time zones that are -12 in offsets 
might have to do +1 day on that offset.
 [2010-10-31 16:56 UTC] felipe@php.net
-Package: *Calendar problems +Package: Date/time related
 [2010-11-03 22:38 UTC] felipe@php.net
-Status: Open +Status: Assigned -Assigned To: +Assigned To: derick
 [2013-10-28 22:14 UTC] phpnet at stanton dot co dot nz
PHP 5.3.15 Also has this issue though I don't believe it is related to the timezone being +12 or over

Keeping the timezone the same I changed the longitude value from 175 to 180 in 0.25 increments and found the sunrise/set values jump to the next day at different longitudes according to the time of the year.


Checking for the sunrise time on Oct 1st 2013 10:35 (NZ summer time) at longitude 177.25 gets 2013-10-01T06:45:18+13:00 but shift the longitude to 177.5 at the sunrise is reported as 2013-10-02T06:44:18+13:00

Checking for the sunrise time on Oct 31st 2013 10:35 (NZ standard time) at longitude 175.75 gets 2013-10-31T06:09:32+13:00 but shift the longitude to 176 at the sunrise is reported as 2013-11-01T06:08:32+13:00
 [2017-10-24 07:52 UTC] kalle@php.net
-Status: Assigned +Status: Open -Assigned To: derick +Assigned To:
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC