Bug->Doc #63597 [Opn->Asn]: easter_date ignores PHP's timezone and uses the TZ env variable
| From: | aharvey@php.net | Date: | Mon, 26 Nov 2012 02:39:25 +0000 |
| Subject: | Bug->Doc #63597 [Opn->Asn]: easter_date ignores PHP's timezone and uses the TZ env variable | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-9203@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=63597&edit=1
ID: 63597
Updated by: aharvey@php.net
Reported by: anon at anon dot anon
-Summary: easter_date is fucking stupid
+Summary: easter_date ignores PHP's timezone and uses the TZ
env variable
-Status: Open
+Status: Assigned
-Type: Bug
+Type: Documentation Problem
-Package: Date/time related
+Package: Documentation problem
PHP Version: 5.4.9
-Assigned To:
+Assigned To: aharvey
Block user comment: N
Private report: N
New Comment:
Thanks for your well reasoned, not at all abusive bug report, anonymous.
Anyway, there is an actual issue here that isn't documented, which is that easter_date() uses
the libc date handling functions, which means it's beholden to the TZ environment variable and
not PHP's default time zone. There's a pretty simple workaround using easter_days() and
DateTime::add(), so I'll get a note into the documentation to demonstrate that.
Previous Comments:
------------------------------------------------------------------------
[2012-11-25 15:13:17] anon at anon dot anon
Description:
------------
The easter_date function magics a random timezone out of the air, rendering it worthless.
Test script:
---------------
<?php
date_default_timezone_set('UTC');
for ($year = 1970; $year <= 2037; $year++) {
echo gmdate('Y-M-d H:i:s', easter_date($year)) . "\n";
}
Actual result:
--------------
1970-Mar-29 00:00:00
1971-Apr-10 23:00:00
1972-Apr-01 23:00:00
1973-Apr-21 23:00:00
1974-Apr-13 23:00:00
1975-Mar-30 00:00:00
1976-Apr-17 23:00:00
1977-Apr-09 23:00:00
1978-Mar-26 00:00:00
1979-Apr-14 23:00:00
1980-Apr-05 23:00:00
1981-Apr-18 23:00:00
1982-Apr-10 23:00:00
1983-Apr-02 23:00:00
1984-Apr-21 23:00:00
1985-Apr-06 23:00:00
1986-Mar-30 00:00:00
1987-Apr-18 23:00:00
1988-Apr-02 23:00:00
1989-Mar-26 00:00:00
1990-Apr-14 23:00:00
1991-Mar-31 00:00:00
1992-Apr-18 23:00:00
1993-Apr-10 23:00:00
1994-Apr-02 23:00:00
1995-Apr-15 23:00:00
1996-Apr-06 23:00:00
1997-Mar-30 00:00:00
1998-Apr-11 23:00:00
1999-Apr-03 23:00:00
2000-Apr-22 23:00:00
2001-Apr-14 23:00:00
2002-Mar-31 00:00:00
2003-Apr-19 23:00:00
2004-Apr-10 23:00:00
2005-Mar-27 00:00:00
2006-Apr-15 23:00:00
2007-Apr-07 23:00:00
2008-Mar-23 00:00:00
2009-Apr-11 23:00:00
2010-Apr-03 23:00:00
2011-Apr-23 23:00:00
2012-Apr-07 23:00:00
2013-Mar-31 00:00:00
2014-Apr-19 23:00:00
2015-Apr-04 23:00:00
2016-Mar-27 00:00:00
2017-Apr-15 23:00:00
2018-Mar-31 23:00:00
2019-Apr-20 23:00:00
2020-Apr-11 23:00:00
2021-Apr-03 23:00:00
2022-Apr-16 23:00:00
2023-Apr-08 23:00:00
2024-Mar-31 00:00:00
2025-Apr-19 23:00:00
2026-Apr-04 23:00:00
2027-Mar-28 00:00:00
2028-Apr-15 23:00:00
2029-Mar-31 23:00:00
2030-Apr-20 23:00:00
2031-Apr-12 23:00:00
2032-Mar-28 00:00:00
2033-Apr-16 23:00:00
2034-Apr-08 23:00:00
2035-Mar-25 00:00:00
2036-Apr-12 23:00:00
2037-Apr-04 23:00:00
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63597&edit=1