DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

Number.toDate 数値をDateオブジェクトに変換する

2006年11月06日 | prototype cast

Number.toDateは数値をDateオブジェクトに変換するメソッドです。Number.toDateメソッドはprototype.js v1.4.0を前提としています。

Numberオブジェクトの値でDateオブジェクトを初期化してそのまま返却します。このときの値は1970年1月1日からの経過秒数(ミリ秒)として扱われます。

Object.extend(Number.prototype, {
  toDate: function() {
    var v = new Date();
    v.setTime(this);
    return v;
  }
});

数値がミリ秒のときはそのまま変換すればよい。

  var mills = 1162738800000; // 2006-11-06 00:00:00
  alert(mills.toDate().toLocaleString());

数値がUNIX Timestampのときは1000ms単位にしてから変換すればよい。

  var sec = 1162738800; // 2006-11-06 00:00:00
  alert((sec*1000).toDate().toLocaleString());

1ステップでDateオブジェクトが生成できるので、使いどころではソースコードがスマートになるかもしれません。


Googleマップ上のレジャースポットを自動クルーズする

2006年11月06日 | Web 2.0

Googleマップの吹き出しにBLOGRANGERパーツを表示する」の中で東京近郊レジャースポット案内というAjaxアプリを作りましたが、さらにGoogleマップ上のレジャースポットを自動クルーズするように改良してみました。↓こんな感じです。

Googleマップ上のマーカーを20秒間隔で自動巡回しながら、レジャースポットの感想を表示します。自動巡回しますのでクルーズ感覚でしばらく眺めてみてください。何か発見があるかも!?


View example

レジャースポットを定義した配列をローテーションして、吹き出し(情報ウィンドウともいう)を表示するpan関数を用意します。

function pan() {
  var spot = spots.shift();
  spot.marker.openInfoWindowHtml('<iframe '
    + 'src="'+spot.url+'" '
    + 'width="320" height="200" frameborder="0" '
    + 'marginwidth="2" marginheight="2" '
    + '></iframe>'
  );
  spots.push(spot);
}

そして、そのpan関数をWEBページのロードが完了したときに呼び出すようにします。また20秒ごとにpan関数を呼び出すようにインターバルタイマーを仕掛けます。

  pan();
  setInterval(pan, 20*1000);