秒もリアルタイムで表示させたい
以下のスクリプトは時間、分まではリアルタイムで表示されるのですが、秒はリアルタイムで表示されません。
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);
}
お礼
ありがとうございました。 total3 = new Date(); y = total3.getFullYear(); m = total3.getMonth() + 1; d = total3.getDate(); h = total3.getHours(); mi = total3.getMinutes(); s = total3.getSeconds(); document.Ms.jikoku.value=y+'-'+m+'-'+d+'-'+h+':'+mi+':'+s; で、total3 = new Date();付けたら表示出来ました。
補足
返信ありがとうございます。 total3=total2+$DATE; year = total3.getFullYear(); month = (total3.getMonth() + 1); date = total3.getDate(); hour = total3.getHours(); minute = total3.getMinutes(); second = total3.getSeconds(); document.test.jikoku.value=year+"年"+month+"月"+date+"日"+hour+":"+minute+":"+second; とやってみたのですが、何も表示されません。 document.test.jikoku.value=year; でも、表示されません。 var とかも付けてみましたが、駄目でした。 時間の所の記述が間違っているのでしょうか? よろしくお願いいたします。