php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #40213 easter_date() returns wrong timestamp if ...
Submitted: 2007-01-23 19:29 UTC Modified: 2007-03-06 19:21 UTC
Votes:5
Avg. Score:3.6 ± 0.8
Reproduced:5 of 5 (100.0%)
Same Version:2 (40.0%)
Same OS:0 (0.0%)
From: oliver dot block at lycos dot de Assigned:
Status: Suspended Package: Calendar related
PHP Version: 5.2.1RC3 OS: Linux
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: oliver dot block at lycos dot de
New email:
PHP Version: OS:

 

 [2007-01-23 19:29 UTC] oliver dot block at lycos dot de
Description:
------------
If the timezone is set to another value than the system timezone, easter_date() will return a timestamp with respect to the systems local time, not with respect to the set timezone. 
That leads to wrong results of date/time function, e.g. date() which handle the (default) timestamp that is set my php (ini_set('date.timezone', 'UTC') or date_default_timezone_set() ).

The problem occurs, if the timezone set by php is "east" of the system's timezone, if e.g. php timezone is 'UTC' and systems timezone is 'Europe/Berlin'

Reproduce code:
---------------
/ext/calendar/tests/easter_date.phpt


Expected result:
----------------
the test

/ext/calendar/tests/easter_date.phpt

should pass.

Actual result:
--------------
the test

/ext/calendar/tests/easter_date.phpt

will fail.

Patches

correct_easter_function_to_use_TimeZone (last revision 2013-09-17 12:24 UTC by pierre dot renaudet at gmail dot com)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-01-24 13:54 UTC] tony2001@php.net
Basically we need to rewrite ext/calendar from scratch (to use ext/date types and utilities) and probably merge it into ext/date.
Volunteers are welcome.
 [2007-01-25 20:16 UTC] oliver dot block at lycos dot de
Let's start with the first function.:) 
You will find a diff file here:

http://mitglied.lycos.de/oblock/easter.c.diff

I also created more test files

http://mitglied.lycos.de/oblock/easter_date_test.tar.gz

Please check everthing and decide if you want to include it.
 [2007-01-25 20:20 UTC] bjori@php.net
404 not found..
 [2007-01-25 21:04 UTC] oliver dot block at lycos dot de
You will find the diff file here now:

http://mitglied.lycos.de/oblock/php/easter.c.diff.gz
 [2007-01-29 22:03 UTC] oliver dot block at lycos dot de
I modified some of the testfiles from the former archives, because of wrong test results. It happens that easter date and DST shift occur on the same day. If so, date('Y-m-d H:i:s', easter_date($year)) will return a time portion of 01:00:00 and not 00:00:00

You find the archive here:

http://www.block-online.eu/phptests/tests_easter_date.tar.gz
 [2007-03-06 12:11 UTC] tony2001@php.net
Naaah, calling mktime() with call_user_function() is just a hack, not a solution.
I've said we probably need to rewrite it from scratch and merge it into ext/date to use ext/date _internal_ functions directly, not through the user API.
 [2007-03-06 19:10 UTC] oliver dot block at lycos dot de
But it saves a lot of time and work. - I've feared that it may not convince you.:)
 [2013-09-17 12:26 UTC] pierre dot renaudet at gmail dot com
I have add a Patch, to consider TimeZone.
But Maybe Move ext/Calendar into ext/date will be more ogical...
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 21:01:30 2024 UTC