小数点を含む時差を求める場合はどうしたら・・・
下記サイトに記載のJavascriptを使用して、時差を表示したいと考えていますが、分単位の時差に対応していないようです。
http://www.pori2.net/js/date/4.html
10時間などの時間単位の変更は出来るのですが、9.5時間の時差などの場合には、表示が9時間となってしまいます。
そのため、分単位の時差に改良したいのですが、どのようにすれば良いかを教えてください。
回答(3件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.3ベストアンサー20pt
>時差を表示したいと考えていますが、分単位の時差に対応していないようです。
「対応していない」と言うほどでもないでしょう。
時間に変換する時に、parseInt( )で行なっているので、変な少数や文字は切り捨て扱いになっているだけです。
Number()やparseFloat()にすれば少数でも認識します。
まぁ、そうは言っても少数での時間ってわかりにくいので、分単位で指定してあげるようにした方がわかりやすいように思います。
その場合は、60倍しなければいいだけということになります。
この回答へのお礼
parseFloat()で問題解決です。
有難うございました。
> 時差に小数点ってあるんですか?
http://ja.wikipedia.org/wiki/標準時
> 9.5時間の時差などの場合には、表示が9時間となってしまいます。
どのようなコードでそうなったのでしょう?
私の環境では,次のコードで「-9.5時間」と表示されます。
var Jisa = -570;
document.write("標準時との時差は、"+Jisa/60+"時間です!");
この回答への補足
説明不足でした。
HTML側表記
________________________
<body onload="SekaiTokei()">
<form name="Wclock">
<select name="city">
<option value="9">東京・ソウル</option>
</select>
<br>
<input type="text" name="Time" value="" size="30">
</form>
________________________
option value="9" でGMT+9時間の時差を表示できます。
このoption valueを” option value="9.5"”としても9時間としか表示されない状態です。
JavaScript内でダイレクトに時差の変更ではなく、HTML側で変更する方法が知りたいです。
修正が必要なJavaScriptは下記となります。
_________________________________________________
<script type="text/javascript">
<!--
function SekaiTokei()
{
setInterval("TimeSet()",1000);
}
function TimeSet()
{
//optionタグのvalue値に設定した時差を取得する
var num = document.Wclock.city.selectedIndex;
var Jisa = parseInt(document.Wclock.city.options[num].value);
//アクセスしたPCの日付データを求め数値にする
var Here= (new Date()).getTime();
//グリニッジ標準時を求める
var GMT = Here + (new Date()).getTimezoneOffset()*60*1000;
//時差を加減して、日付データに戻す
var Jikan=new Date(GMT+Jisa*60*60*1000);
//日付と時刻を求める
var Year = Jikan.getFullYear();
var Month= Jikan.getMonth()+1;
var Day = Jikan.getDate();
var Hour = Jikan.getHours();
var Minu = Jikan.getMinutes();
var Sec = Jikan.getSeconds();
//時間表示の修正(10秒未満は前に0を付ける)
if (Hour < 10) Hour="0"+Hour;
if (Minu < 10) Minu="0"+Minu;
if (Sec < 10) Sec ="0"+Sec;
//日付と時刻を表示する
var DATE = Year+"年"+Month+"月"+Day+"日";
var TIME = Hour+":"+Minu+":"+Sec;
document.Wclock.Time.value = DATE+" "+TIME;
}
// -->
</script>
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
【電話・メール相談特集】
様々なジャンルの専門家に電話やメールで直接相談できるサービスをご紹介。一人で考えるより、あなたの【お悩み解決】や【夢の実現】に、その分野の専門家の力を役立てましょう。