• ベストアンサー

秒もリアルタイムで表示させたい

以下のスクリプトは時間、分まではリアルタイムで表示されるのですが、秒はリアルタイムで表示されません。 nowX をnew Date()にすると問題なく表示されるのですが、どのパソコンでも正確な日本時間を取得し、その差を表示しなければいけないため為、単にローカル時間を取得するDate()は使用できません。 直せる場所があれば是非教えて下さい。 var sYear = '2009'; var sMonth = '02'; var sDay = '24'; var sHour = '13'; var sMini = '02'; var sSecd = '41'; sMon = sMonth - 1; function counting() { nowtime = new Date(); jptime = new Date(); jptime.setTime(nowtime.getTime() + (nowtime.getTimezoneOffset() + 540) * 60 * 1000); year = jptime.getYear(); minutes = jptime.getMinutes(); hour = jptime.getHours(); month = new Array("Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sep","Oct","Nov","Dec"); if(jptime.getYear() < 2000) {year += 1900;} if(jptime.getMinutes() < 10) {minutes = "0" + minutes;} Moxtime = (month[jptime.getMonth()]+" "+jptime.getDate()+", "+year+" "+hour+":"+minutes+":00"); setX = new Date(sYear,sMon,sDay,sHour,sMini,sSecd); nowX = new Date(Moxtime); zanSecond = Math.floor((setX.getTime() - nowX.getTime()) / 1000); if (zanSecond > 0) { value = "残り"; endValue = "です"; } else { value = "すでに"; zanSecond = Math.abs(zanSecond); endValue = "経過しました"; } zanDay = Math.floor(zanSecond / 86400); zanHour = Math.floor((zanSecond - zanDay * 86400) / 3600); zanMini = Math.floor((zanSecond - zanDay * 86400 - zanHour * 3600) / 60); zanSecd = Math.floor(zanSecond - zanDay * 86400 - zanHour * 3600 - zanMini * 60); if (zanDay > 0) { value = value+zanDay+"日"; } if (zanHour > 0) { value = value+zanHour+"時間"; } if (zanMini > 0) { value = value+zanMini+"分"; } value = value+zanSecd+"秒"; document.test.zan.value = value+endValue; setTimeout("counting()", 500); }

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

  • ベストアンサー
  • equinox2
  • ベストアンサー率48% (321/660)
回答No.2

・以下の行を追加 seconds = jptime.getSeconds(); ・以下の行を変更 Moxtime = (month[jptime.getMonth()]+" "+jptime.getDate()+", "+year+" "+hour+":"+minutes+":"+seconds); 場所はわかりますよね。 >どのパソコンでも正確な日本時間を取得し、その差を表示しなければいけないため為 所詮、タイムゾーンを補正しているだけなので、動かすパソコンの現地時刻が 正確でないと意味が無いですよ。

その他の回答 (1)

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

ちゃんと見てないけど… Moxtime = (month[jptime.getMonth()]+" "+jptime.getDate()+", "+year+" "+hour+":"+minutes+":00"); nowX = new Date(Moxtime); ってなってるので、秒が入らないんじゃないの? はやとちりの勘違いだったら、無視してください。

関連するQ&A

専門家に質問してみよう