【PHP】Twitter発言数チェック その2 & strtotime関数
前回やったのはその日に何回発言したか、でしたが「その日」しか分からないので0:00を丁度過ぎた頃にチェックしても、どれくらい発言したか結局分かりません。
ということで、24時間以内にどれだけ発言したか、に変えようと思いました。
前回はただ日付を文字列比較していただけなのですがそれだと「24時間以内」を実現するのはめんどくさい。
そこで今回はタイムスタンプを利用します。
しかしxmlで取得できるのはこれ。
<created at>Wed Nov 18 22:37:36 +0000 2009</created_at>
monthが英字だし1つずつ取り出すのも処理が大変です。
しかしPHPには英字をタイムスタンプにする関数がきちんと用意されていました!
前回使ったstrtotime関数が英字も処理してくれるようです。
試しに上の文字列そのままでやってみたらきちんとタイムスタンプが取れました。
今から1日前のタイムスタンプと、xmlで取得した
$yesterday = strtotime("-1 day"); $time= strtotime($created_at); if($yesterday < $time){ $count++; }
補足
つまり
//日本時間 $time = "Wed Oct 06 06:00:00";
と
//グリニッジ標準時 $time = "Tue Oct 05 21:00:00 +0000 2010";
この2つをstrtotime関数にかけると同じタイムスタンプが取得できます。
1日前のタイムスタンプ($yesterday)は日本時間の日付から算出していますが、これにより暦を変換せずとも(GMTまたはJSTに揃えなくても)直接比較ができます。
最初からこれにするべきでしたね(笑)