Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:40734 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 47644 invoked from network); 27 Sep 2008 09:21:23 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Sep 2008 09:21:23 -0000 Authentication-Results: pb1.pair.com header.from=indeyets@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=indeyets@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.217.14 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: indeyets@gmail.com X-Host-Fingerprint: 209.85.217.14 mail-gx0-f14.google.com Received: from [209.85.217.14] ([209.85.217.14:59453] helo=mail-gx0-f14.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id C3/23-30545-11BFDD84 for ; Sat, 27 Sep 2008 05:21:22 -0400 Received: by gxk7 with SMTP id 7so8928724gxk.23 for ; Sat, 27 Sep 2008 02:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=kwuPD869slbnrlHOT8KBB3eC93jG6pTgoU3YWDRCTrc=; b=knob9WpQeH0KMaW87eRMHNdpwEzN+hHFbybDP/+KC4IYRkVwJlMrv0JV/Sif5Q08HG JXDJRxwfWp52lZRPfPAs2kDF3uCpe5tB1ZoIJ/CCaTVUktewxE42yWXuBIOnaZTqhJ6w M0WeyBIjj1yV1Z2IjbWfpAfcqeXn1BKJLmLqM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=VS8eCJIztit3uBOSRXL3dPEjFKecglSg9F9pIlx6AUbJud1mNsu7TeLY8oHf8kbUeb Qt40O8bnupfBZ2DI0AEfFwOsGqdxlGAdrbsYrLouXedJi1viimRCq/vop9brd/gkGytC YgaC7oKuP09cv+NNQentlklCuWD7ILPyP7z2k= Received: by 10.151.142.16 with SMTP id u16mr3660746ybn.58.1222507278971; Sat, 27 Sep 2008 02:21:18 -0700 (PDT) Received: by 10.150.186.11 with HTTP; Sat, 27 Sep 2008 02:21:18 -0700 (PDT) Message-ID: Date: Sat, 27 Sep 2008 13:21:18 +0400 To: "Ilia Cheishvili" Cc: "PHP internals" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: Subject: Re: [PHP-DEV] [PATCH] Fix date() bug From: indeyets@gmail.com ("Alexey Zakhlestin") On Sat, Sep 27, 2008 at 12:26 PM, Ilia Cheishvili 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 > wrote: >> >> On Sat, Sep 27, 2008 at 12:04 PM, Ilia Cheishvili >> 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 >> > wrote: >> >> >> >> On Sat, Sep 27, 2008 at 11:04 AM, Ilia Cheishvili >> >> 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/