PHPでTwitterの時刻を変換する方法
TwitterのAPIを使えば投稿時刻は簡単に取得できるのですが、HTMLをパースする場合は○分前とかといった感じで出ているので、どうしたものかと思っていたら、abbrタグのtitle属性にセットされているんですね。
しかし、この属性値はISO8601形式で書かれているのと日本時間に直すために+9時間をする必要があります。
そこでPHPで変換するためのメモ。
ついでに、HTMLからtitle属性をとる方法も(要 HTTP_Request)
<?php require_once 'HTTP/Request.php'; //タイムラインを取得してパース $request = new HTTP_Request(アドレス); $respons = $request->sendRequest(); if(PEAR::isError($respons)){ throw new Exception("Timeline get ERROR"); } $dom = @DOMDocument::loadHTML($request->getResponseBody()); $xml = simplexml_import_dom($dom); //時刻を取得 $entry_array = $xml->xpath("//td[@class=\"content\"]"); $i = 0; foreach($entry_array as $entry){ $time = $this->getJpTime((string)$entry->span[1]->a[0]->abbr[0]["title"]); //ここで日本時間に変換し整形 $contents[$i++] = date("Y/m/d H:i:s",strtotime($time)); } ?>
これだけ。
表示の仕方を変えるのも簡単。
strtotimeは「英文形式の日付・時刻式をUNIXタイムスタンプに変換」という機能をもった関数だそうで。
かなり便利そう。
・今の日時を出す
strtotime("now");・1週間後を算出
strtotime("+1 week")
こんな感じで使えます。
あとは、date関数に入れて整形して表示させるだけ。
便利すぎだろ。