On Tue, 27 Sep 2005, Stanislav Malyshev wrote:

> The timezone is named IDT currently, but the problem is not in this - the 
> problem is in "we can add it". OK, we add this one - how many ones out 
> there we didn't add yet? So we will be fixing it for years and still get 
> it not work in some places - while before the "improvement" it worked! 

Using a timezone abbreviation is a bad thing anyway. Your timezone is 
"Isreal/Tel Aviv" and *currently* your abbreviation is IDT. IDT is not a 
timezone, it is the description of the period in which you use DST in 
combination with Israel time.

> Most probably you will naver have the full list - since both Unix and 
> Windows allows to extend their timezone databases, and even more funny 
> thing - they allow changing rules for timezones. Does this library use OS 
> timezone database?

As I already said, no, it does not use the OS's timezone database for 
the obvious reasons mentioned.

> Then even if you would add the name there, who would guarantee you that 
> the rules your library is using is the same rules the rest of OS is using? 
> That your app won't jump from DST to standard a week too early?

The timezone database that I use is updated from the respected Olson 
database. All distributions use this (and I hope also Windows). If the 
distributions don't, then *their* information is incorrect and not 
PHP's. This is one of the reasons why we have our own database.

> And I don't see why you one can't use OS services to check timezones - 
> AFAIK most OSes provide these. 

But they are totally crippled. Timezone abbreviations are not unique 
(EST is both Eastern US, and Eastern Australia for example) and do NOT 
provide you with a solid way of handling all the complicate matters - 
believe me, i've been there. There is no other sensible way then doing 
this ourselves - the only thing is that you actually have to specify 
your timezone in your php.ini file now.

> DR>>Turn on E_STRICT error reporting... and see the documentation: 
> DR>>http://php.net/manual/en/ref.datetime.php
> 
> Can you quote where it says how can I fix it? And more importantly - how 
> someone as a PHP programmer and not C programmer can fix it if your 
> library doesn't know his timezone?

        date.timezone  string

            The default timezone used by all date/time functions if the TZ 
        environment variable isn't set. The precedence order is described in 
the 
        date_default_timezone_get() page. 

http://no2.php.net/manual/en/function.date-default-timezone-get.php 
says:

        This functions returns the default timezone, using the 
        following "guess" order:

                * The timezone set using the date_default_timezone_set() 
function (if any)
                * The TZ environment variable (if non empty)
                * The date.timezone ini option (if set)
                * "magical" guess (if the operating system supports it)
                * If none of the above options succeeds, return UTC 

The one that the C code recognizes is already a fallback in case you 
don't set this setting. You don't need to change any C code in order to 
pick the correct timezone. (And for you you should use "Asia/Tel_Aviv" 
as setting).

regards,
Derick

-- 
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to