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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GASでundefinedエラーが出ます
-
ASP.NET MVCでObjectをjsに渡す
-
翌月を取得するGASが分かりません
-
ジェネレーターの作り方
-
APIを使って埋め込んだグーグル...
-
アルファベットABCD…をスマート...
-
C# 演算 奇数と偶数 表現の仕方
-
C#OpenCv V4にのエラーに関する...
-
gas スプレッドシートがアクテ...
-
JavaScriptで複数のCSVを取得し...
-
google apps scriptの終了のさせ方
-
GASでGoogleフォームの自動返信...
-
javascriptで複数キーワード検...
-
JScriptでExcelの全シートにア...
-
VSCODE[Python]の設定について
-
第3日曜日のみの日付を取得、...
-
今日で生まれて何日何分何十秒...
-
C#で、ContextMenuStripに動的...
-
ローカルにあるファイルを検索...
-
シンプルなweb版スタンプラリー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
ジェネレーターの作り方
-
GASでundefinedエラーが出ます
-
ASP.NETのコントロールの値をJa...
-
C#で、ContextMenuStripに動的...
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
ASP.NET MVCでObjectをjsに渡す
-
シンプルなweb版スタンプラリー...
-
ローカルにあるファイルを検索...
-
なぜmatchメソッドがエラーにな...
-
VSCODE[Python]の設定について
-
1日1回だけ引けるjavascriptお...
-
javascriptでiframeのURL変更は?
-
html javascript リンク先アド...
-
lengthが読めない理由が分からない
-
googleスプレッドシートのApps ...
-
【javascript】正規表現で括弧...
-
HTMLにWSHを組み込む
おすすめ情報