Scuttle 0.7.2 でブックマーク時刻が18時間前になっている

scuttle.cre.jp出力しているRSSを見て気がついたのですが、Scuttleの出力する時刻がおかしいですね。タイムゾーンだろうか。

2007-04-28の6:03ごろに登録したものが

 
Fri, 27 Apr 2007 12:03:49 +0000
 

と18時間遅い。9時間ならタイムゾーンのずれなんだけど、二重にタイムゾーンのずれが入っているところをみると、タイムゾーンの扱いがダメなのかな。

templates/rss.tpl.php をみると echo $bookmark['pubdate']; のように呼び出されています。

pubdate は rss.php で

 
     $_pubdate = gmdate("r", strtotime($row['bDatetime']));
 

とデータベースから取得され、格納されている。特に加工はしていないので、格納時の問題か。

はてさて。MySQLのテーブルを覗くと Fri, 27 Apr 2007 12:03:49 +0000 と表示されていたやつは 2007-04-27 21:13:58 と格納されています。格納されている bDatetime はGMTで正しく入っているわけです。ということは、strtotime関数で文字列をtime_tに変換しているところで、「これはローカル時間だろう」と、さらに-9時間してしまっているわけですかね。そのあとRFC 2822形式に変換するときにはgmdate使ってるので問題はない……と思う。

 
        if (is_null($date))
            $time = time();
        else
            $time = strtotime($date);
        $datetime = gmdate('Y-m-d H:i:s', $time);
        // Set up the SQL insert statement and execute it.
        $values = array('uId' => intval($sId),
             'bIp' => $ip,
             'bDatetime' => $datetime,
             'bModified' => $datetime,
             'bTitle' => $title,
             'bAddress' => $address,
             'bDescription' => $description,
             'bStatus' => intval($status),
             'bHash' => md5($address));
 
 

と格納している。うーん。せめてGMT/UTCと明記するべく+0:00くらいつけてデータベースに格納するべきできないのだろうか。

この記事へのトラックバックURL:

http://drupal.cre.jp/trackback/530
Drupal.cre.jp から 土, 2007-04-28 20:35 受信

Scuttle 0.7.2 でブックマーク時刻が18時間前になっている問題への対処として、試しにScuttleをレポジトリにある最新版に更新してみました。


この記事をブックマーク

人気コンテンツ