アナログ時計をサーバー参照に

20160930aこれまで、トップページのアナログ時計は、クライアントPC(閲覧者の利用端末)の時計を参照して表示していました。

今回、サーバーの時計を参照して時刻を表示するPHPプログラムに修正しました。

アクセス時にサーバーの時刻を取り込み、そこからクライントのインターバルタイマーで一秒ごとに、値を積み上げて時刻表示しています。

その為、長時間の稼働では誤差が心配なので、1時間毎に、window.location.reload()を実行し、インラインフレーム内のPHPを再表示(=時刻を再取得)させています。

実際には「00分00秒」となった時に実行しているので、日付が変わった時点でも、正常に日付表示・時刻表示されます。



20160930b「診療時間と休診日」ページのアナログ時計もサーバーの時計を参照して稼働するものに改修しました。実は、微妙に文字盤(外枠・文字)のサイズが違うので、別PHPファイルとしています。

「バルーン表示」(曜日によって日付の吹き出し位置を変更)、「アナログ時計」、「カレンダー」のすべてが、サーバーの時計を参照するようになり、動作的にも統一されたものとなったと思います。

クライアントの時計が大幅にずれていても、正しい表示をしてくれるのは気持ちが良いですね。

その昔レンタルサーバー業者に確認した際、サーバーの時計の時刻調整は、NTPサーバを利用し正しい時刻に自動的に合わせていると言っていました。・・・タイムゾーンの設定 date_default_timezone_set(‘Asia/Tokyo’); は、PHPファイル内で宣言する必要がありました。

アナログ時計のデザインはイジっていませんが、サーバーの時計を参照していると言う事で、文字盤に薄い文字で「Server Clock」と表示してみました。

一般向けには「Center Clock」とかにした方が、解りやすいのかも知れませんね・・・。