JavaScript でのリアルタイム時刻表示
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>
お礼
回答ありがとうございます。 よくわかりました。 根本の動作がわかっていませんでした。 ありがとうございます。