Re: [PATCH] Fix date() bug

From: Date: Sat, 27 Sep 2008 09:21:18 +0000
Subject: Re: [PATCH] Fix date() bug
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-40734@lists.php.net to get a copy of this message
On Sat, Sep 27, 2008 at 12:26 PM, Ilia Cheishvili <ilia.cheishvili@gmail.com> wrote: > Ah, I see. I like that even better :) > And I attached yet another patch that incorporates your idea. thanks. I did some more code-digging, and it looks, like proper point for fixing is not here, anyway. It should be in timelib_unixtime2gmt() and timelib_unixtime2local() funcitons of ext/date/lib/unixtime2tm.c "->f" member of structure is not set there, which results in zero's in output. date() function is an abstraction and should not deal with such details itself. > > On Sat, Sep 27, 2008 at 2:20 AM, Alexey Zakhlestin <indeyets@gmail.com> > wrote: >> >> On Sat, Sep 27, 2008 at 12:04 PM, Ilia Cheishvili >> <ilia.cheishvili@gmail.com> wrote: >> > It definitely would be, and that's actually the way I would have >> > preferred >> > to do it. I didn't want to impact too much code, if that makes sense in >> > this case, but I'm glad that someone agrees :) >> > I have attached a patch to do exactly this. >> >> I was thinking other in another direction.. >> >> case 'u': >> #ifdef HAVE_GETTIMEOFDAY >> gettimeofday(&tp, &tz); >> length = slprintf(buffer, 32, "%06d", (int) tp.tv_usec); >> #else >> length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000)); >> #endif >> break; >> >> >> > >> > On Sat, Sep 27, 2008 at 1:40 AM, Alexey Zakhlestin <indeyets@gmail.com> >> > wrote: >> >> >> >> On Sat, Sep 27, 2008 at 11:04 AM, Ilia Cheishvili >> >> <ilia.cheishvili@gmail.com> wrote: >> >> > Hi all, >> >> > This patch addresses the issue with the date() function. When >> >> > passing >> >> > in a >> >> > 'u', the date() function simply outputs six zeros. To fix this, I >> >> > added >> >> > a >> >> > gettimeofday() call that figures out what to display for >> >> > microseconds. >> >> > I am >> >> > including the headers and using the function with pre-processor >> >> > safeguards >> >> > as well. >> >> > Take a look :) >> >> >> >> Wouldn't it be better, to make gettimeofday() call only in case of >> >> 'u'? >> >> >> >> >> >> -- >> >> Alexey Zakhlestin >> >> http://blog.milkfarmsoft.com/ >> > >> > >> >> >> >> -- >> Alexey Zakhlestin >> http://blog.milkfarmsoft.com/ > > -- Alexey Zakhlestin http://blog.milkfarmsoft.com/

« previous php.internals (#40734) next »