2008/12/02
先日Twitterのつぶやき取得方法をRSSからJSONに変更しましたが、この中でつぶやきの投稿日時を表す「created_at」のフォーマットが"曜日 月 日 時:分:秒 +0000 年"(例:"Mon Dec 01 14:24:26 +0000 2008")になっていて、月と日を取り出すのにSafariやFirefox、Google Chromeなどでは以下の手順でできていましたがIEではエラー(NaN)になることが分かりました。
: var post_date = result[i]['created_at']; var date = new Date(post_date); var mon = date.getMonth() + 1; var day = date.getDate(); :
よく考えたらDate()はそのフォーマットを認識できないはずなので、以下のような処理に変更してIEでもエラーにならないようにしました。
: // 日時データを要素分解 var created_at = result[i]['created_at'].split(" "); // 投稿日時変換 "Mon Dec 01 14:24:26 +0000 2008" -> "Dec 01, 2008 14:24:26" var post_date = created_at[1] + " " + created_at[2] + ", " + created_at[5] + " " + created_at[3]; // 日時データ処理 var date = new Date(post_date); // 日付文字列 -> オブジェクト変換 date.setHours(date.getHours() + 9); // UTC -> JST (+9時間) var mon = date.getMonth() + 1; // 月取得 var day = date.getDate(); // 日取得