[pLog-svn] r2415 - in plog/branches/plog-1.0.2: class/locale templates/rss

Jon Daley plogworld at jon.limedaley.com
Fri Aug 26 00:27:09 GMT 2005


 	Ok, that makes sense.  I submitted a bug on sf.net, but it appears 
that it isn't being worked on much.  Maybe I will have to fix it...


On Thu, 25 Aug 2005, Paul Westbrook wrote:
> Hello,
>  It looks like it is a bug in the reader.  When I looks at the feed in my 
> reader (NewsFire), I see the date/time of that post as "Today, 10:25 AM".  My 
> time zone is PDT, so this looks correct.
>
>   Is it possible that your RSS reader is not recognizing DST?
>
>
> --Paul
>
>
> On Aug 25, 2005, at 4:38 PM, Jon Daley wrote:
>
>>    Okay, finally got a chance to look at this.  If I am understanding the 
>> RSS feed correctly
>> (http://jon.limedaley.com/plog/rss/rss20/1)
>> I am looking at "Weekend Weekend Sailing Adventures, Part II"
>> which was posted at 13:49, and correctly shows that time on the admin and 
>> user side.
>> In the RSS document, it says: "Thu, 25 Aug 2005 13:25:09 -0400"
>>    My computer is set to EDT, but my RSS reader prints out 12:25. So, that 
>> means it is a bug in the reader?
>> 
>> On Fri, 19 Aug 2005, Paul Westbrook wrote:
>> 
>> 
>>> Hello,
>>> This works for me.  My server is in the same time zone as me, so my offset 
>>> is 0.  The dates are reported with the -0700 offset, which is correct for 
>>> PST now.
>>> 
>>> When I changed the offset, the times changed to reflect that timezone, and 
>>> the timezone offset also changed correctly.  What offset are you using? 
>>> What offset is being added to the dates in the rss feed?  It should be 
>>> -0400 for EDT.
>>> 
>>> The DST bug will only be a problem when the time that is being formatted 
>>> is across a DST boundary.
>>> 
>>> 
>>> --Paul
>>> 
>>> 
>>> On Aug 19, 2005, at 5:02 AM, Jon Daley wrote:
>>> 
>>>
>>>>   Does this work for you?  It appears to do pretty strange things for me.
>>>>   Server is in same timezone as me. EST.
>>>>
>>>>   Posts show correct time, RSS feed show DST bug that you mention.
>>>>
>>>>   I thought I would try adding a +1 to see what that did to the DST bug. 
>>>> The post times went ahead 2 hours, RSS feeds stayed the same!!?
>>>> On Fri, 19 Aug 2005, pwestbro at devel.plogworld.net wrote:
>>>> 
>>>>> Author: pwestbro
>>>>> Date: 2005-08-19 07:20:20 +0000 (Fri, 19 Aug 2005)
>>>>> New Revision: 2415
>>>>> Modified:
>>>>> plog/branches/plog-1.0.2/class/locale/locale.class.php
>>>>> plog/branches/plog-1.0.2/templates/rss/atom.template
>>>>> plog/branches/plog-1.0.2/templates/rss/rss090.template
>>>>> plog/branches/plog-1.0.2/templates/rss/rss20.template
>>>>> Log:
>>>>> Fixed the last part of bug http://bugs.plogworld.net/view.php?id=442
>>>>> Now the dates are output in local time of the poster, and not the 
>>>>> server.
>>>>> If the blog info is passed into formatDate, the timeoffset is used to
>>>>> correct the time zone offset.  Printing the dates in local time zone, 
>>>>> allow
>>>>> additional information to be available, that is lost when converting to 
>>>>> GMT.
>>>>> There may still be a problem when dealing with the boundary with 
>>>>> daylight
>>>>> saving time.  If the current date has DST in effect, and the post date 
>>>>> does
>>>>> not, the time zone offset may be incorrect.  This could potentially be
>>>>> solved by passing the date that is being parsed into the date("Z") call.
>>>>> The documentation doesn't say what happens in this case.
>>>>> Also, fixed a mistake in my last checkin.  There was a conditional that 
>>>>> was
>>>>> always true, so I just removed the conditional
>>>>> Modified: plog/branches/plog-1.0.2/class/locale/locale.class.php
>>>>> ===================================================================
>>>>> --- plog/branches/plog-1.0.2/class/locale/locale.class.php    2005-08-18 
>>>>> 21:12:48 UTC (rev 2414)
>>>>> +++ plog/branches/plog-1.0.2/class/locale/locale.class.php    2005-08-19 
>>>>> 07:20:20 UTC (rev 2415)
>>>>> @@ -475,6 +475,7 @@
>>>>>        * <li>%S    seconds</li>
>>>>>        * <li>%y    2-digit year representation</li>
>>>>>        * <li>%Y    4-digit year representation</li>
>>>>> +         * <li>%O   Difference to Greenwich time (GMT) in hours</li>
>>>>>        * <li>%%    the '%' character
>>>>>        * </ul>
>>>>>        * (these have been added by myself and are therefore incompatible 
>>>>> with php)<ul>
>>>>> @@ -482,7 +483,7 @@
>>>>>        * <li>%D    cardinal representation of the day</li>
>>>>>        * </ul>
>>>>>        */
>>>>> -        function formatDate( $timeStamp, $format = null )
>>>>> +        function formatDate( $timeStamp, $format = null, $blog = null )
>>>>>       {
>>>>>           // load the file if it hadn't been loaded yet
>>>>>           if( !is_array($this->_messages))
>>>>> @@ -496,6 +497,26 @@
>>>>>           // and the same for the weekdays
>>>>>           $weekdayId = $timeStamp->getWeekdayId();
>>>>>           $weekday = $this->_messages["days"][$weekdayId];
>>>>> +
>>>>> +            // Get the time zone offset for the server
>>>>> +            $timeZoneSec = date("Z");
>>>>> +            if ( $blog ) {
>>>>> +                //
>>>>> +                // The blog was specified.  Use it to get the time 
>>>>> offset
>>>>> +                //
>>>>> +                $timeDiff = 0;
>>>>> +                $blogSettings = $blog->getSettings();
>>>>> +                $timeDiff = $blogSettings->getValue( 'time_offset' );
>>>>> +
>>>>> +                // The following line relies on the fact that the 
>>>>> result will
>>>>> +                // be an int.
>>>>> +                $timeZoneSec += ( $timeDiff * 3600 );
>>>>> +            }
>>>>> +            // Now convert the time zone seconds to hours and minutes
>>>>> +            $timeZoneHours = intval( abs($timeZoneSec) / 3600 );
>>>>> +            $timeZoneMins = intval(( abs($timeZoneSec) % 3600 ) / 60 );
>>>>> +            $timeZoneDirection = ($timeZoneSec < 0 ) ? "-" : "+";
>>>>> +
>>>>>
>>>>>           // if the user did not specify a format, let's use the default 
>>>>> one
>>>>>           if( $format == null )
>>>>> @@ -518,6 +539,7 @@
>>>>>           $values["%S"] = $timeStamp->getSeconds();
>>>>>           $values["%y"] = substr($timeStamp->getYear(), 2, 4 );
>>>>>           $values["%Y"] = $timeStamp->getYear();
>>>>> +            $values["%O"] = sprintf( "%s%02d%02d", $timeZoneDirection, 
>>>>> $timeZoneHours, $timeZoneMins );
>>>>>           $values["%%"] = "%";
>>>>>           $values["%T"] = $this->getDayOrdinal( $timeStamp )." 
>>>>> ".$this->tr("of")." ".$monthStr;
>>>>>           $values["%D"] = $this->getDayOrdinal( $timeStamp );
>>>>> @@ -561,6 +583,7 @@
>>>>>        * <li>%S    seconds</li>
>>>>>        * <li>%y    2-digit year representation</li>
>>>>>        * <li>%Y    4-digit year representation</li>
>>>>> +         * <li>%O   Difference to Greenwich time (GMT) in hours (Will 
>>>>> always be +0000)</li>
>>>>>        * <li>%%    the '%' character
>>>>>        * </ul>
>>>>>        * (these have been added by myself and are therefore incompatible 
>>>>> with php)<ul>
>>>>> @@ -579,11 +602,9 @@
>>>>>               // The blog was specified.  Use it to get the time offset
>>>>>               //
>>>>>               $timeDiff = 0;
>>>>> -                if( $this->_blogInfo == null ) {
>>>>> -                    $blogSettings = $blog->getSettings();
>>>>> -                    $timeDiff = $blogSettings->getValue( 'time_offset' 
>>>>> );
>>>>> -                    $timeDiff *= -1;
>>>>> -                }
>>>>> +                $blogSettings = $blog->getSettings();
>>>>> +                $timeDiff = $blogSettings->getValue( 'time_offset' );
>>>>> +                $timeDiff *= -1;
>>>>>
>>>>>               if( $timeDiff > 0 )
>>>>>                   $timeStamp->addSeconds( $timeDiff * 3600 );
>>>>> @@ -639,6 +660,7 @@
>>>>>           $values["%S"] = gmdate( "s", $time );
>>>>>           $values["%y"] = gmdate( "y", $time );
>>>>>           $values["%Y"] = gmdate( "Y", $time );
>>>>> +            $values["%O"] = "+0000";
>>>>>           $values["%%"] = "%";
>>>>>           $values["%T"] = $this->getDateOrdinal( gmdate( "d", $time ) 
>>>>> )." ".$this->tr("of")." ".$monthStr;
>>>>>           $values["%D"] = $this->getDateOrdinal( gmdate( "d", $time ) 
>>>>> );
>>>>> Modified: plog/branches/plog-1.0.2/templates/rss/atom.template
>>>>> ===================================================================
>>>>> --- plog/branches/plog-1.0.2/templates/rss/atom.template    2005-08-18 
>>>>> 21:12:48 UTC (rev 2414)
>>>>> +++ plog/branches/plog-1.0.2/templates/rss/atom.template    2005-08-19 
>>>>> 07:20:20 UTC (rev 2415)
>>>>> @@ -3,7 +3,7 @@
>>>>> <title>{$blog->getBlog()|escape}</title>
>>>>> <link rel="alternate" type="text/html" href="{$url->blogLink()}" />
>>>>> {assign var="newestDate" value=$posts[0]->getDateObject()}
>>>>> -<modified>{$locale->formatDateGMT($newestDate, 
>>>>> "%Y-%m-%dT%H:%M:%S-00:00", $blog)}</modified>
>>>>> +<modified>{$locale->formatDate($newestDate, "%Y-%m-%dT%H:%M:%S%O", 
>>>>> $blog)}</modified>
>>>>> <tagline>{$blog->getAbout()|escape}</tagline>
>>>>> <generator url="http://www.plogworld.net/" 
>>>>> version="1.0.1">pLog</generator>
>>>>> {assign var="blogOwner" value=$posts[0]->getUserInfo()}
>>>>> @@ -14,9 +14,9 @@
>>>>> <title>{$post->getTopic()|escape}</title>
>>>>> <link rel="alternate" type="text/html" 
>>>>> href="{$url->postPermalink($post)}" />
>>>>> {assign var="postDate" value=$post->getDateObject()}
>>>>> - <modified>{$locale->formatDateGMT($postDate, 
>>>>> "%Y-%m-%dT%H:%M:%S-00:00", $blog)}</modified>
>>>>> - <issued>{$locale->formatDateGMT($postDate, "%Y-%m-%dT%H:%M:%S-00:00", 
>>>>> $blog)}</issued>
>>>>> - <created>{$locale->formatDateGMT($postDate, "%Y-%m-%dT%H:%M:%S-00:00", 
>>>>> $blog)}</created>
>>>>> + <modified>{$locale->formatDate($postDate, "%Y-%m-%dT%H:%M:%S%O", 
>>>>> $blog)}</modified>
>>>>> + <issued>{$locale->formatDate($postDate, "%Y-%m-%dT%H:%M:%S%O", 
>>>>> $blog)}</issued>
>>>>> + <created>{$locale->formatDate($postDate, "%Y-%m-%dT%H:%M:%S%O", 
>>>>> $blog)}</created>
>>>>> <summary type="text/plain">{$post->getText()|strip_tags|truncate:200:" 
>>>>> ..."|escape:"html"}</summary>
>>>>> <author>
>>>>> {assign var="postOwner" value=$post->getUserInfo()}
>>>>> Modified: plog/branches/plog-1.0.2/templates/rss/rss090.template
>>>>> ===================================================================
>>>>> --- plog/branches/plog-1.0.2/templates/rss/rss090.template    2005-08-18 
>>>>> 21:12:48 UTC (rev 2414)
>>>>> +++ plog/branches/plog-1.0.2/templates/rss/rss090.template    2005-08-19 
>>>>> 07:20:20 UTC (rev 2415)
>>>>> @@ -16,7 +16,7 @@
>>>>>  <description>{$post->getText()|escape}</description>
>>>>>  <link>{$url->postPermalink($post)}</link>
>>>>>  {assign var="postDate" value=$post->getDateObject()}
>>>>> -   <pubDate>{$locale->formatDateGMT($postDate, "%a, %d %b %Y %H:%M:%S 
>>>>> GMT", $blog)}</pubDate>
>>>>> +   <pubDate>{$locale->formatDate($postDate, "%a, %d %b %Y %H:%M:%S %O", 
>>>>> $blog)}</pubDate>
>>>>> </item>
>>>>> {/foreach}
>>>>> </rdf:RDF>
>>>>> Modified: plog/branches/plog-1.0.2/templates/rss/rss20.template
>>>>> ===================================================================
>>>>> --- plog/branches/plog-1.0.2/templates/rss/rss20.template    2005-08-18 
>>>>> 21:12:48 UTC (rev 2414)
>>>>> +++ plog/branches/plog-1.0.2/templates/rss/rss20.template    2005-08-19 
>>>>> 07:20:20 UTC (rev 2415)
>>>>> @@ -9,7 +9,7 @@
>>>>> <title>{$blog->getBlog()|escape}</title>
>>>>> <link>{$url->blogLink()}</link>
>>>>> <description>{$blog->getAbout()|escape}</description>
>>>>> -  <pubDate>{$locale->formatDateGMT($now, "%a, %d %b %Y %H:%M:%S 
>>>>> GMT")}</pubDate>
>>>>> +  <pubDate>{$locale->formatDate($now, "%a, %d %b %Y %H:%M:%S 
>>>>> %O")}</pubDate>
>>>>> <generator>http://www.plogworld.net</generator>
>>>>> {foreach from=$posts item=post}
>>>>> <item>
>>>>> @@ -26,7 +26,7 @@
>>>>>   <category>{$category->getName()|escape}</category>
>>>>>  {/foreach}
>>>>>  {assign var="postDate" value=$post->getDateObject()}
>>>>> -   <pubDate>{$locale->formatDateGMT($postDate, "%a, %d %b %Y %H:%M:%S 
>>>>> GMT", $blog)}</pubDate>
>>>>> +   <pubDate>{$locale->formatDate($postDate, "%a, %d %b %Y %H:%M:%S %O", 
>>>>> $blog)}</pubDate>
>>>>>  <source 
>>>>> url="{$url->rssLink("rss20")}">{$blog->getBlog()|escape}</source>
>>>>>  {foreach from=$post->getArticleResources() item=resource}
>>>>>   {** please uncomment the line below if you'd like to server everything 
>>>>> but images, instead of
>>>>> _______________________________________________
>>>>> pLog-svn mailing list
>>>>> pLog-svn at devel.plogworld.net
>>>>> http://devel.plogworld.net/mailman/listinfo/plog-svn
>>>>> 
>>>> **************************************************************
>>>> *                           *  The reason houses are made of *
>>>> *         Jon Daley         *    brick instead of aluminum   *
>>>> *                           *       foil is the thermal      *
>>>> * http://jon.limedaley.com/ *          diffusivity.          *
>>>> *                           *          -- Professor Shaeffer *
>>>> **************************************************************
>>>> _______________________________________________
>>>> pLog-svn mailing list
>>>> pLog-svn at devel.plogworld.net
>>>> http://devel.plogworld.net/mailman/listinfo/plog-svn
>>>> 
>>> 
>>> --
>>> Paul Westbrook
>>> paul at westbrooks.org
>>> <http://www.westbrooks.org>
>>> 
>>> 
>>> 
>> 
>> http://jon.limedaley.com/plog/
>> Happiness is not a station you arrive at, but a manner of traveling.
>> -- Margaret Lee Runbeck
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.plogworld.net
>> http://devel.plogworld.net/mailman/listinfo/plog-svn
>> 
>> 
>
> --
> Paul Westbrook
> paul at westbrooks.org
> <http://www.westbrooks.org>
>
>

http://jon.limedaley.com/plog/
There's a devil in this world, and his job is to waste your time.
-- Professor Tygar



More information about the pLog-svn mailing list