とりあえず、日付出力に関してはそれっぽくなった?

ということで、私の環境にて修正した箇所をdiff取ってみました。対象は Twitter Tools ver.2.4 です。いくつかの記事を参考にしつつ、自分でもソース読みつつ修正&トライ。

横の桁数が圧倒的に足りないので見づらいですが…。

date() に渡すタイムスタンプには (get_option(‘gmt_offset’) * 3600) してやっています。ダイジェスト投稿時の tweet 時刻は aktt_tweet_display() 内の $time_display にきちんと日時を入れるように変更して、さらに日時はつぶやきより前になるよう $output への入力順を入れ換えました。 (aktt_absoluteTime() を追加)

--- twitter-tools.php.org       2010-08-16 05:22:42.000000000 +0900
+++ twitter-tools.php   2011-05-12 00:23:38.000000000 +0900
@@ -370,8 +370,8 @@ class twitter_tools {
                // see if there's any tweets in the time range
                global $wpdb;

-               $startGMT = gmdate("Y-m-d H:i:s", $start);
-               $endGMT = gmdate("Y-m-d H:i:s", $end);
+               $startGMT = date("Y-m-d H:i:s", $start + (get_option('gmt_offset') * 3600));
+               $endGMT = date("Y-m-d H:i:s", $end + (get_option('gmt_offset') * 3600));

                // build sql
                $conditions = array();
@@ -416,8 +416,8 @@ class twitter_tools {
                                }
                                $post_data = array(
                                        'post_content' => $wpdb->escape($content),
-                                       'post_title' => $wpdb->escape(sprintf($title, date('Y-m-d'))),
-                                       'post_date' => date('Y-m-d H:i:s', $end),
+                                       'post_title' => $wpdb->escape(sprintf($title, date('Y/m/d', $end))),
+                                       'post_date' => date('Y-m-d H:i:s', $end + (get_option('gmt_offset') * 3600)),
                                        'post_category' => array($this->blog_post_category),
                                        'post_status' => 'publish',
                                        'post_author' => $wpdb->escape($this->blog_post_author)
@@ -586,7 +586,7 @@ class aktt_tweet {
                        , '".$wpdb->escape($this->tw_text)."'
                        , '".$wpdb->escape($this->tw_reply_username)."'
                        , '".$wpdb->escape($this->tw_reply_tweet)."'
-                       , '".date('Y-m-d H:i:s', $this->tw_created_at)."'
+                       , '".date('Y-m-d H:i:s', $this->tw_created_at + (get_option('gmt_offset') * 3600))."'
                        , NOW()
                        )
                ");
@@ -826,23 +826,39 @@ function aktt_latest_tweet() {

 function aktt_tweet_display($tweet, $time = 'relative') {
        global $aktt;
-       $output = aktt_make_clickable(wp_specialchars($tweet->tw_text));
-       if (!empty($tweet->tw_reply_username)) {
-               $output .=      ' <a href="'.aktt_status_url($tweet->tw_reply_username, $tweet->tw_reply_tweet).'" class="aktt_tweet_reply">'.sprintf(__('in reply to %s', 'twitter-tools'), $tweet->tw_reply_username).'</a>';
-       }
+
+       /* 2011/05/09 switch before akkt_make_clickable */
        switch ($time) {
                case 'relative':
                        $time_display = aktt_relativeTime($tweet->tw_created_at, 3);
                        break;
                case 'absolute':
-                       $time_display = '#';
+                       $time_display = aktt_absoluteTime($tweet->tw_created_at);
                        break;
        }
-       $output .= ' <a href="'.aktt_status_url($aktt->twitter_username, $tweet->tw_id).'" class="aktt_tweet_time">'.$time_display.'</a>';
+       $output = '<a href="'.aktt_status_url($aktt->twitter_username, $tweet->tw_id).'" class="aktt_tweet_time">'.$time_display.'</a> ';
+
+       $output .= aktt_make_clickable(wp_specialchars($tweet->tw_text));
+       if (!empty($tweet->tw_reply_username)) {
+               $output .=      ' <a href="'.aktt_status_url($tweet->tw_reply_username, $tweet->tw_reply_tweet).'" class="aktt_tweet_reply">'.sprintf(__('in reply to %s', 'twitter-tools'), $tweet->tw_reply_username).'</a>';
+       }
        $output = apply_filters('aktt_tweet_display', $output, $tweet); // allows you to alter the tweet display output
        return $output;
 }

+/* 2011/05/09 add function */
+function aktt_absoluteTime($date) {
+       $time = gmmktime(
+               substr($date, 11, 2)
+               , substr($date, 14, 2)
+               , substr($date, 17, 2)
+               , substr($date, 5, 2)
+               , substr($date, 8, 2)
+               , substr($date, 0, 4)
+               );
+       return date('Y/m/d H:i:s', $time);
+}
+
 function aktt_make_clickable($tweet) {
        $tweet .= ' ';
        $tweet = preg_replace_callback(

4 thoughts on “Twitter Toolsその後

  • […] 中でしたがテストしてみたら成功。タイムテーブルがやはりあった方が見やすい(独り言) 参考にさせていただいたのは、まぶろぐさんのこちらの記事です。ありがとうございました♪ […]

  • 初めまして。
    先日からツイッターの日付表示をさせたいと思っていたのですが検索でこちらのサイトを見つけて早速試させていただきました。

    表示が可能になったのですが時間が少しずれてしまいました。
    ド素人なので修正ができません :cry:
    もし教えて頂ければとても嬉しいのですが・・・。
    初めましてで、とても図々しいのですがお時間のある時にでもご指導いただけましたら幸いです。
    よろしくお願いいたします。

  • こんにちは。
    度々のコメント失礼いたします。
    先ほど確認しましたら日付きちんと表示されたようです。
    こちらの勘違いでした。
    素敵に表示できるようになり感激です。
    どうもありがとうございました :grin:

コメントを残す