GMT−12からGMT+14まで1時間刻みのオフセットを27列で表示し、デバイスの時計から毎秒更新します。固定オフセットのため、夏時間や30分単位のタイムゾーンは表示しません。
ブラウザ内でローカルに実行UTCとの差が1時間単位のオフセットごとに1列、GMT−12からGMT+14まで27個の時計を1画面に並べ、お使いのデバイスの時計を基準に毎秒計算し直します。セルの値はデバイスの時刻にそのオフセットを足したもので、表示されているのはそのオフセットの現在時刻そのものです。
列の見出しを都市名ではなくオフセットにしたのは意図的です。夏時間のある地域では、都市名は一年の半分しか当てはまりません。表の最上段にはデバイス自身の時刻と日付を表示し、これを基準にすべての列を比較します。
各セルはUTCに対する固定オフセット、つまりデバイスの時刻に整数時間を足し引きした値です。GMTという表記が意味するのはそれだけです。GMT+5は日付や季節にかかわらず、一年を通じて常にUTCより5時間進んでいます。世界中で時計が切り替わる週末でもこの表が正しいままでいられるのは、各列の計算が変わらないからです。
一方、列はタイムゾーンの名前を表すものではありません。ベルリンは冬にGMT+1の列、夏にGMT+2の列にあり、ニューヨークは同じ日程でGMT−5とGMT−4の間を移動します。列が示すのはそのオフセットの時刻であり、特定の都市のその日の時刻ではありません。
30分単位・45分単位のタイムゾーンには列がありません。インドはUTC+5:30、ネパールはUTC+5:45、ニューファンドランドは標準時にUTC−3:30です。1時間刻みの表では、こうした地域は隣り合う2列の間に落ち、専用の行を持ちません。
範囲を−12から+14にしたのは、現役の1時間単位オフセットをすべて含むためです。ベーカー島が−12、キリティマティが+14にあたります。ここに無いオフセットで正確な時刻が必要なときは、IANAの規則を持つ変換ツールを使ってください。固定オフセットの表は、名前のある地域の代わりにはなれません。
表の最上段はお使いのデバイスです。その時刻と、ブラウザの言語設定に従った日付を表示します。時計の下の +1 / −1 は、そのオフセットの日付をこの行と比べた結果です。たとえば上海のデバイスで9月17日 04:38 のとき、GMT−12からGMT+3まではまだ前日、GMT+4はすでに日付が変わっていました。
27個のオフセット欄はすべて読み取り専用です。時刻を書き込むのはページ側で、誤ってクリックしても動いている時計を上書きすることはありません。入力欄もありません。このページはこの表だけであり、どこにも送信しません。
各列はページ内のスクリプトが、ブラウザがすでに持っている値(デバイスの時計とオフセット)だけから計算します。時計を動かすのにリクエストは必要ありません。読み込み後にブラウザをオフラインにしても、27列はそのまま動き続けます。
正確さを左右するのは2つで、どちらも手元にあります。各列の元になるデバイスの時計と、上部の日付を整形するブラウザの言語設定です。デバイスの時計が数分ずれていれば、すべての列が同じだけずれます。