JavaScriptはiso8601形式の日時表記をパースできません。
**現在はできます。**gaogao_9さんのコメントを参照ください。
つまりDateにiso8601を投げるだけで良かったようです。とほほ。
CMSのAPIとかで結構使われているので地味に困る。
変換ライブラリがすでにありますが、別ファイルを読み込むまでもないし、時差も考慮しないのでざっと書きました。
iso8601date.js
var iso8601Date = function(iso) {
var parse = iso.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\+\d{2}:\d{2}/);
return new Date( Number(parse[1]), Number(parse[2]), Number(parse[3]), Number(parse[4]), Number(parse[5]), Number(parse[6]) );
};
...
var pubdate = iso8601Date( '2016-10-12T17:47:15+09:00' );
console.log(pubdate[1]); //2016
正規表現での抽出
matchで正規表現を書く際に、条件内を括弧で囲んでいる箇所は配列として抽出できます。
これを覚えると地味に捗ります。
正規表現チェッカーをよく利用させてもらってます。
http://okumocchi.jp/php/re.php