2012年7月9日月曜日

ISO 8601 時間への対応


ISO 8601による時間の表記は、2012-07-31T08:00:00+0900 のようになります。
しかし、全てのブラウザが対応しているわけではありません。

Firefox 13OK
Chrome 20OK
safari 5.1NG
IE 9NG


次のようなメソッドを用意して、対応しました。

// 2012-07-31T08:00:00+0900 形式の文字列をDateオブジェクトに変換する
function dateStr2Date(str){
  var d = new Date(str);
  if(d == 'Invalid Date'){
    var s = str;
    s = s.replace('T', ' ');
    s = s.replace(/-/g, '/');
    d = new Date(s);
  }
  return d;
}


chromeの場合、時差の部分がないときは、GMTと認識するようですから、上記では不十分です。

0 件のコメント:

コメントを投稿