Bug #13900 Updated: date(I) does not correctly identify daylight saving time

From: Date: Tue, 06 Nov 2001 05:20:42 +0000
Subject: Bug #13900 Updated: date(I) does not correctly identify daylight saving time
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-69686@lists.php.net to get a copy of this message
ID: 13900
Updated by: jimw
Reported By: bmplummer1@home.com
Old Status: Open
Status: Bogus
Bug Type: Date/time related
Operating System: Windows NT/XP
PHP Version: 4.0.6
New Comment:

if you want to check if a date occurs during daylight savings time, you have to set your timezone to
one that observes daylight savings time. (ie. putenv("TZ=PST8PDT"))

there's no bug here.

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

[2001-11-05 23:03:45] bmplummer1@home.com

Ok.  I think you nailed it.  I am in Arizona.  We don't use daylight saving time.  When I run
date("T") it returns nothing.  Blank.  Is date("I") dependant on your timezone? 
If so then it won't work for servers running PHP in Arizona.  Uh...  Is there an alternative or
will I just have to write this by hand?

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

[2001-11-05 03:15:13] jimw@php.net

perhaps a simple reality check: what timezone does date("T") report? php could be running
in a context with the timezone set to something that doesn't have a daylight savings time.

(and there is no module or php.ini setting that has anything do with what date("I")
reports. if the timezone is correct, and it is wrong, then your c library is broken.)

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

[2001-11-04 22:56:35] bmplummer1@home.com

I have two comments about the last entry.

First...
Jeroen, if you ran the same script that you put in your notes then it should have returned a 1 (one)
because the date is May 1 2001 which occurs during daylight saving time.

Second...
On my Win XP pro version 2002, PHP 4.06 CGI version here is what I get:

SCRIPT:

<?php
var_dump(date("I", mktime(0,0,0,5,1,2001)));
?>

OUTPUT:

string(1) "0"

I haven't made any special changes to my PHP.ini.  Do I need to load a special module to get
this to work?  I have been able to reproduce this on two different systems.  On XP and NT 4.0 I used
the PHP installer to automatically install PHP.  I also reinstalled PHP 4.06 manually on the XP
system but I only used the php.ini-dist config file.

In the mean time...  Anybody know of a daylight saving time detection script before I start writing
this by hand?

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

[2001-11-04 19:55:34] jeroen@php.net

On my w2k 4.0.4pl1, it returns 1, which is wrong now, since Daylight saving time ended a week ago in
Europe. Same for debian-linux. Both are correctly configured.


What's your output with this script:

<?php
var_dump(date("I", mktime(0,0,0,5,1,2001)));
?>

On my system, it returns string(1) "1"

--Jeroen


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

[2001-11-03 01:09:15] bmplummer1@home.com

I downloaded 4.06 again and installed it manually.  I have a feeling that my php.ini is somehow
different than the standard because when I tried to use the optimized php.ini file I couldn't
even load my script.  But when I used the dist version the script worked (except for the date(I)
part).  I must have my PHP configured incorrectly.  But why would it do it on two different
computers and two different versions of PHP???

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/?id=13900


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



Thread (11 messages)

« previous php.dev (#69686) next »