• ベストアンサー

小数点を含む時差を求める場合はどうしたら・・・

下記サイトに記載のJavascriptを使用して、時差を表示したいと考えていますが、分単位の時差に対応していないようです。 http://www.pori2.net/js/date/4.html 10時間などの時間単位の変更は出来るのですが、9.5時間の時差などの場合には、表示が9時間となってしまいます。 そのため、分単位の時差に改良したいのですが、どのようにすれば良いかを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

>時差を表示したいと考えていますが、分単位の時差に対応していないようです。 「対応していない」と言うほどでもないでしょう。 時間に変換する時に、parseInt( )で行なっているので、変な少数や文字は切り捨て扱いになっているだけです。 Number()やparseFloat()にすれば少数でも認識します。 まぁ、そうは言っても少数での時間ってわかりにくいので、分単位で指定してあげるようにした方がわかりやすいように思います。 その場合は、60倍しなければいいだけということになります。

bagoo55
質問者

お礼

parseFloat()で問題解決です。 有難うございました。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

> 時差に小数点ってあるんですか? http://ja.wikipedia.org/wiki/標準時 > 9.5時間の時差などの場合には、表示が9時間となってしまいます。 どのようなコードでそうなったのでしょう? 私の環境では,次のコードで「-9.5時間」と表示されます。 var Jisa = -570; document.write("標準時との時差は、"+Jisa/60+"時間です!");

bagoo55
質問者

補足

説明不足でした。 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>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

時差に小数点ってあるんですか?

bagoo55
質問者

補足

あるんです。 オーストラリアやニュージーランド他、15分~30分単位で異なる場所があります。

専門家に質問してみよう