しかし、別の地域の時刻を表示したい場合、たとえば、本社が別の国にあり、現地時間ではなく「自宅」の時間を表示したい場合はどうすればよいでしょうか?
これを行うには、現地時間を目的地の時間に変換するためにさまざまな時間計算を実行する必要があります。この記事では、これらの計算を実行する方法について説明します。
ステップ 1:
最初のステップは現地時間を取得することです。 JavaScript では、Data() オブジェクトを初期化することでこれを簡単に行うことができます。
// 現在位置の Date オブジェクトを作成
d = new Date();
Data() オブジェクトの getTime() メソッドを呼び出すことで、1970 年 1 月 1 日から現在の時刻を表示できます。間のミリ秒数。
// 1970 年 1 月 1 日以降のミリ秒に変換します
localTime = d.getTime();
ステップ 2:
次のステップでは、Data( ) オブジェクトの時間オフセット値。デフォルトでは、このメソッドはタイム ゾーン オフセット値の結果を分単位で表示するため、この値は前の計算でミリ秒に変換されます。
// ローカル UTC オフセットを取得し、ミリ秒に変換します
localOffset = d.getTimezoneOffset() * 60000;
getTimezoneOffset() メソッドの負の戻り値は、現地時間が世界標準より前であることを示していることに注意してください。 Time (UTC) 。正の戻り値は、現地時間が協定世界時 (UTC) より遅れていることを示します。
注: 60,000 という乗算係数をどのようにして求めたのか疑問に思われる場合は、1,000 ミリ秒が 1 秒に相当し、1 分が 60 秒に相当することを思い出してください。したがって、分をミリ秒に変換するには、60 に 1000 を掛けて、60000 となります。
ステップ 3
現地時間と現地タイムゾーンのオフセットを追加して、現在の国際標準時間 (UTC) を取得します。
// UTC 時間をミリ秒で取得します
utc = localTime localOffset;
ここで、変数 utc には現在の国際標準時間 (UTC) が含まれています。ただし、この時間は 1970 年 1 月 1 日から現在までのミリ秒数で表されます。まだ計算が残っているので、とりあえずこのように表現してみます。
ステップ 4
国際標準時 (UTC) を取得後、対象都市の国際標準時 (UTC) の 1 時間ごとのオフセット値を取得し、ミリ秒に変換し、国際標準時 (UTC) を加算します。 。
// 目的地の UTC 時間オフセットを取得して追加します
// 例: ボンベイ
// これは UTC 5.5 時間です
offset = 5.5;
bombay = utc (3600000*offset);
注: 乗算係数 3,600,000 をどのようにして求めたのか疑問に思われる場合は、1000 ミリ秒が 1 秒に相当し、1 時間が 3600 秒に相当することを思い出してください。したがって、時間をミリ秒に変換するには、3600 に 1000 を掛けて、3600000 となります。
現時点では、変数 Bombay にはインドのムンバイの現地時間が含まれています。この現地時間は、1970 年 1 月 1 日から現在までのミリ秒数で表されます。明らかに、これでは意味がありませんので、いくつかの計算を行う必要があります。
ステップ 5
新しい Data() オブジェクトを初期化し、このオブジェクトの toLocalString() メソッドを呼び出すことにより、前のステップで計算された時刻値を誰もが理解できる日付/時刻文字列に変換します。
// ミリ秒値を日付文字列に変換します
nd = new Date(bombay);
document.writeln("Bombay time is " nd.toLocaleString() "
");方法 変換が完了しました。
概要
上記の手順を理解した後、このスクリプト (リスト A) をもう一度見てみましょう。このスクリプトは、すべての計算を実行して時間値を返すコンパクトなカスタム関数 calcTime() を作成します。
リスト A