17時間の時差があるアメリカの時刻をリアルタイムに表示したいのですが数箇所おかしな点があり、困っています。
17時間遅れているアメリカの時間を表示しようとしたのですが、17時間遅れているということから -17 しています。
hour の取得時に -17 としてみたのですが、おかしな表示になってしまい、正常に表示されません。
日本時間: 2008/02/13 02:14:55
アメリカ時間: 2008/02/13 0-15:14:55
というように表示されてしまいます。
本来なら17時間遅れているアメリカの時間は、
2008/02/12 09:14:55
と表示されなければいけないのですが、
どうすれば改善されますか?
また日付の取得が10ずれてるのですが、
これも改善したいです。
単純に+10してしまうと、22日以降の表示がおかしくなると思うのでなんらかの対処が必要と思いますが、対処方法が分かりません。
以下にスクリプトを記しますので、ご教授よろしくお願い致します。
<script language="JavaScript">
<!--
function ClockU(){
time = new Date();
YearU = time.getFullYear();
MonthU = time.getMonth()+1;
DayU = time.getDay();
HourU = time.getHours()-17;
MinuteU = time.getMinutes();
SecondU = time.getSeconds();
if(MonthU<10){MonthU='0'+MonthU;}
if(DayU<10){DayU='0'+DayU;}
if(HourU<10){HourU='0'+HourU;}
if(MinuteU<10){MinuteU='0'+MinuteU;}
if(SecondU<10){SecondU='0'+SecondU;}
document.getElementById('ClockU').innerHTML = YearU+'/'+MonthU+'/'+DayU+' '+HourU+':'+MinuteU+':'+SecondU;
setTimeout('ClockU()',100);
}
setTimeout('ClockU()');
// -->
</script>
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>GMTでの時間表示をする場合はどうなるのでしょうか?
>GMTですとサマータイムとウィンタータイムで1時間の時差が生じたと思います。
GMTはグリニッジ標準時のことで、サマータイム等とは別の話だと思います。
各地域の標準時は、GMTとの時差を使って表現できます。
最近はUTC(協定世界時)を使うようですが、これはGMTとほぼ同じです。
例:
日本標準時(JST):GMT+9
GMTに9時間足すと、日本標準時
太平洋標準時(PST):GMT-8
GMTから8時間引くと、太平洋標準時
太平洋夏時間(PDT):GMT-7
GMTから7時間引くと、太平洋標準時の夏時間
サマータイムは、地域によって期間が異なるので、地域を特定しないと計算出来ません。
夏時間(サマータイム)
http://ja.wikipedia.org/wiki/%E5%A4%8F%E6%99%82% …
>17時間遅れているアメリカの時間
と言うことなので、太平洋標準時だと仮定して話を進めます。
太平洋標準時
http://ja.wikipedia.org/wiki/%E5%A4%AA%E5%B9%B3% …
夏時間の期間は、昨年変更されたばかりで、3月の第2日曜日午前2時から11月の第1日曜日午前2時までの期間だそうです。
日付をチェックし、この期間内に入っている場合は、GMT-7になります。つまり日本との差は16時間ですね。
----サンプル----
<script language="JavaScript">
<!--
//太平洋時間(PT)を取得する
function getDatePT()
{
var pst = new Date();
var pdt = new Date();
var offset = pst.getTimezoneOffset()/60;//現地の時差
pst.setTime(pst.getTime() + (offset-8)*60*60*1000); //PSTの計算
pdt.setTime(pdt.getTime() + (offset-7)*60*60*1000); //PDTの計算
//夏時間の期間のチェック
if(getPdtStartDate() <= pst && pdt <getPdtEndDate()){
return pdt;
}else{
return pst;
}
}
//PDTの開始日時を取得する
//3月の第2日曜日の午前2時(PST)
function getPdtStartDate()
{
var now = new Date();
var ret = new Date(now.getFullYear(), 3-1, 1, 2, 0, 0);
for(var c = 0; ; ret.setTime(ret.getTime() + 24*60*60*1000)){
if(ret.getDay() == 0) c++;
if(c >= 2) break;
}
return ret;
}
//PDTの終了日時を取得する
//11月の第1日曜日の午前2時(PDT)
function getPdtEndDate()
{
var now = new Date();
var ret = new Date(now.getFullYear(), 11-1, 1, 2, 0, 0);
for(var c = 0; ; ret.setTime(ret.getTime() + 24*60*60*1000)){
if(ret.getDay() == 0) c++;
if(c >= 1) break;
}
return ret;
}
function ClockU(){
time = getDatePT();
YearU = time.getFullYear();
MonthU = time.getMonth()+1;
DayU = time.getDate();
HourU = time.getHours();
MinuteU = time.getMinutes();
SecondU = time.getSeconds();
if(MonthU<10){MonthU='0'+MonthU;}
if(DayU<10){DayU='0'+DayU;}
if(HourU<10){HourU='0'+HourU;}
if(MinuteU<10){MinuteU='0'+MinuteU;}
if(SecondU<10){SecondU='0'+SecondU;}
document.getElementById('ClockU').innerHTML = YearU+'/'+MonthU+'/'+DayU+' '+HourU+':'+MinuteU+':'+SecondU;
setTimeout('ClockU()',100);
}
setTimeout('ClockU()');
// -->
</script>
No.3
- 回答日時:
おかしいですね。
No1、2の方法で、前日の日付になるはずですよ。
うちの環境では、正常です。(WindowsXP IE6, Firefox2)
現在:2008/02/14 01:44:09
表示:2008/02/13 08:44:09
念のため全ソース載せますので、これで確認してみて下さい。
<html>
<head>
<title>時計</title>
<script language="JavaScript">
<!--
function ClockU(){
time = new Date();
time.setTime(time.getTime()-17*60*60*1000);
YearU = time.getFullYear();
MonthU = time.getMonth()+1;
DayU = time.getDate();
HourU = time.getHours();
MinuteU = time.getMinutes();
SecondU = time.getSeconds();
if(MonthU<10){MonthU='0'+MonthU;}
if(DayU<10){DayU='0'+DayU;}
if(HourU<10){HourU='0'+HourU;}
if(MinuteU<10){MinuteU='0'+MinuteU;}
if(SecondU<10){SecondU='0'+SecondU;}
document.getElementById('ClockU').innerHTML = YearU+'/'+MonthU+'/'+DayU+' '+HourU+':'+MinuteU+':'+SecondU;
setTimeout('ClockU()',100);
}
setTimeout('ClockU()');
// -->
</script>
</head>
<body>
<span id="ClockU"></span>
</body>
</html>
venzon さん、たびたびありがとうございます。
ソースに間違いがあったようですが、どこに間違いがあるか不明だったので、公開して頂いたソースをコピーさせて頂きました。
無事表示できるようになりました。
GMTでの時間表示をする場合はどうなるのでしょうか?
GMTですとサマータイムとウィンタータイムで1時間の時差が生じたと思います。
ご存知であればご教授よろしくお願い致します。
No.2
- 回答日時:
時間の件は回答出てますので、日付の件について・・・
>また日付の取得が10ずれてるのですが、
日付は、getDay()ではなく、getDate()ですよ。
getDay()は、曜日を調べるものです。
17時間遅らす件と、合わせると下記の様になると思います。
----変更箇所のみ抜粋----
time = new Date();
time.setTime(time.getTime()-17*60*60*1000);
YearU = time.getFullYear();
MonthU = time.getMonth()+1;
DayU = time.getDate();
HourU = time.getHours();
アドバイスありがとうございます。
早速試してみたところ、
日本時間で17時以降24時までは
17時間の時差を設定した時計も正常に動作しますが、
日本時間が0時になると、
0-17時になってしまいます。
これを前日の7時と表示させたいのですが
何か方法はありますか?
ex.
日本時間: 2008年2月14日0時5分
17時間の時差時計: 2008年2月14日0-17時5分
というように表示されます。
本来なら2008年2月13日7時と表示されなければいけないのですが、
そのようになりません。
何かご存知でしたら
引き続きご教授よろしくお願い致します。
No.1
- 回答日時:
#17時間差(utc-8)ということはpstですね。
数値にしてから加減算すればいいのでは?
pst = new Date();
pst.setTime(pst.getTime() - (17 * 3600 * 1000));
>また日付の取得が10ずれてるのですが、
ちょっと読み取れませんでした(汗)。本当にずれているのであれば、同様に数値にしてから10日分のミリ秒を加算すればいいのですが・・。
#PCの日付がずれていたりはしませんよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで睡眠時間をもとに判定したい 6 2022/08/19 13:47
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- 英語 提示した名言の文の構造について(waste one hour of time) 5 2023/05/20 15:22
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- 英語 「it takes 期間 to do/doing」の意味やニュアンスの違いについて 1 2023/01/15 14:02
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- その他(Microsoft Office) 勤務表のエクセル作成で数式を教えてください。 1 2023/01/17 03:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
1日1回引けるJavaScriptおみく...
-
canvas上で画像を移動する方法...
-
var_dumpのdump意味はを知りた...
-
googleスプレッドシートのApps ...
-
GASでundefinedエラーが出ます
-
Google Maps V3のズームの規制
-
どうすれば良いでしょうか?
-
HTMLにWSHを組み込む
-
翌月を取得するGASが分かりません
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
C言語の質問です HTMLでこのよ...
-
指定日数経過でHTML上のデータ...
-
なぜmatchメソッドがエラーにな...
-
gas スプレッドシートがアクテ...
-
onchangeイベントを使ってspan...
-
同じIDで定義した要素の配列を...
-
Click回数を数え、規定された回...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
HTMLで作った時報アプリが動き...
-
javascriptでテーブルに追加し...
-
html javascript リンク先アド...
-
【西暦等の変換】
-
ローカルにあるファイルを検索...
-
ASP.NETのコントロールの値をJa...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
ASP.NET MVCでObjectをjsに渡す
-
カンマで終わってるのはセミコ...
-
JavaScriptで文字列の特定文字...
-
javascriptでiframeのURL変更は?
-
APIを使って埋め込んだグーグル...
おすすめ情報