自分のWebページに訪問した人の滞在時間をざっとでもいいから図ってみようと、PHPのクラスのコンストラクタとデストラクタで表現しようと思って、下のようなコードを試しに書いたわけですよ。
//訪問者タイマー
class visitor_timer
{
public $page_st;
public $page_ed;
public function __construct()
{
$this -> page_st = New DateTime();
}
public function __destruct()
{
$this -> page_ed = New DateTime();
$result = $this -> page_st -> diff($this->page_ed);
//echo $result -> s;
}
}
これでインクルードしておいて、ページ内でNewでインスタンスと同時に現在時間がpage_stに入って、インスタンスされたオブジェクトが参照されなくなったらpage_edに時間をいれて、diffで差分をだしたらsで秒数がわかると、、、、ここにDataBaseとつなげて、、、、とあれ?
大きな勘違いでした。。。このオブジェクトが参照されなくなるタイミングがページを離脱する時ならこれでいいですが、、、
PHPはサーバーサイドで、ページ作成してブラウザに渡すので、ページが表示されたときにはすでにコードは終了してますよね(笑)だって差分は0秒でしたもん(笑)
やっぱりJavaScriptしかないかぁ。。。。まあ、私のページはクローラーしか来てないのでどっちでもいいですが(笑)
なので、これはとても意味のないコードということになりますね。
page_edは別にpublicにしなくてもいいですけど、後でつかうかなぁって思ったのでそうしてます。そもそも使えないのでそんなことはどうでもいいですけど。