これまで、トップページのアナログ時計は、クライアントPC(閲覧者の利用端末)の時計を参照して表示していました。
今回、サーバーの時計を参照して時刻を表示するPHPプログラムに修正しました。
アクセス時にサーバーの時刻を取り込み、そこからクライントのインターバルタイマーで一秒ごとに、値を積み上げて時刻表示しています。
その為、長時間の稼働では誤差が心配なので、1時間毎に、window.location.reload()を実行し、インラインフレーム内のPHPを再表示(=時刻を再取得)させています。
実際には「00分00秒」となった時に実行しているので、日付が変わった時点でも、正常に日付表示・時刻表示されます。
「診療時間と休診日」ページのアナログ時計もサーバーの時計を参照して稼働するものに改修しました。実は、微妙に文字盤(外枠・文字)のサイズが違うので、別PHPファイルとしています。
「バルーン表示」(曜日によって日付の吹き出し位置を変更)、「アナログ時計」、「カレンダー」のすべてが、サーバーの時計を参照するようになり、動作的にも統一されたものとなったと思います。
クライアントの時計が大幅にずれていても、正しい表示をしてくれるのは気持ちが良いですね。
アナログ時計のデザインはイジっていませんが、サーバーの時計を参照していると言う事で、文字盤に薄い文字で「Server Clock」と表示してみました。
一般向けには「Center Clock」とかにした方が、解りやすいのかも知れませんね・・・。