On Fri, Oct 24, 2008 at 8:38 AM, A.L.E.C <[EMAIL PROTECTED]> wrote:
> Eric Stadtherr wrote:
>>
>> Date: Tue, 21 Oct 2008 00:13:54 0600
>>
>> Notice that the time zone offset specifier is missing the "+/-"
>> prefix. Thunderbird seems to drop the zone offset in this case and
>> assume it's a local date. RoundCube, on the other hand, passes it into
>> PHP's handy "strtotime" function which interprets 0600 as the year.
>> This leads at the very least to display problems (in the message list
>> and the message display), and worst case to invalid dates in the
>> database if caching is enabled.
>>
>> I'd like to make RoundCube a little more tolerant, so I was wondering
>> what everyone else thought about possible solutions. The options I'm
>> considering are:
>>
>>    1. Parse the date using a fixed format string (e.g. "D, d M Y H:i:s
>>       O") and one of PHP's other date functions. This would prevent
>>       misinterpretation but might be even less tolerant.
>>    2. Analyze the string before passing to strtotime() to identify and
>>       work around known issues (of which there would be exactly one at
>>       this point). This is a single special case kind of solution, but
>>       strtotime might be reliable enough that this is the only case
>>       we'll hit.
>>
>
> So, now we have (function format_date()):
>
> while (($ts = @strtotime($date))===false)
>
> I think it will be enough to change that to:
>
> while (($ts = @strtotime($date))===false || $ts < 0)
>
> Time zone offset will be lost. 0 here is for 1970-01-01, to be more
> strict such value could be greater ;) As you see there's one work around
> yet in function format_date():
>
> if (is_numeric($date))
>    $ts = $date;
>
> so, we can add another one for your issue.
>
>
> ps. isn't it a bug in strtotime?
>

I've personally ran into at least two issues with strtotime() and they
both won't be fixed on PHP5.2.x. They appear to be fine/working in the
5.3 and 6 branches.

On top of that, the documentation is also pretty unclear. According to
the author, PHP does not have a straight implementation of the GNU
syntax which the docs link to. ;-) He's got a book in the works, which
I probably need to buy and maybe someone gets around to updating the
manual as well. :-(

Till
_______________________________________________
List info: http://lists.roundcube.net/dev/

Reply via email to