Zend_DateでTwitterの日付を整形・変換
Twitterの日付フォーマットはZend_Dateでは「"EEE MMM dd HH:mm:ss Z YYYY"」となっているはずなのだが、上手くいかない。
めんどくさいので、Zend_Dateのバグと言う事にして回避策を講じてみた。
$response->created_at = "Mon Mar 14 10:27:05 +0000 2011"
$date = new Zend_Date(strtotime($response->created_at)); print_r($date->toArray()); Array ( [day] => 14 [month] => 3 [year] => 2011 [hour] => 19 [minute] => 27 [second] => 05 [timezone] => JST [timestamp] => 1300098425 [weekday] => 1 [dayofyear] => 72 [week] => 11 [gmtsecs] => 32400 )
とりあえず、strtotimeが優秀で、誤変換なども今のところなく動いている。
言ってしまえば、Zend_Dateを使う意味が全く無いのだが・・・
ちなみに、本来ならきっと動くはずのZend_Dateを使ったやり方。
間違いがあったら、是非ご教授頂きたいです。
$date = new Zend_Date($response->created_at, "EEE MMM dd HH:mm:ss Z YYYY"); print_r($date->toArray()); Array ( [day] => 14 [month] => 3 [year] => 0 [hour] => 10 [minute] => 27 [second] => 05 [timezone] => JST [timestamp] => -62161047175 [weekday] => 5 [dayofyear] => 73 [week] => 11 [gmtsecs] => 0 )
ご覧の通り、yearの判別が上手くいかないです。