我遇到HTML5表单字段的问题,我需要字段(时间)将每秒更新为当前时间,更新代码每秒通过setInterval调用,即HTML5表单元素:
<form name="process">
<input name="p_time" type="time" value="<?php echo date("H:i:s");?>" />
//...
</form>
当我尝试更新时: document.forms.process.p_time.value = current.time.slice(17,25); 显示仍然是PHP所做的设置,类型字符串数据的格式与00:00:00相同,但它拒绝从原始时间开始。变量current.time是UTC格式的字符串,对应于: ddd,dd mmm,yyyy hh:mm:ss +00:00 GMT 种类。
javascript是一个简单的例程,它会在完整版中更新
元素
current = {
now:function(){ return new Date(); },
time:0,
tick:function(){
current.time = current.now().toUTCString();
document.forms.process.p_time.value = current.time.slice(17,25);
current.clock();
},
clock:function(){
current.target.innerHTML = current.time.slice(0,25);
},
auto:setInterval(current.tick,1000)
}
我不想做的是通过页面刷新刷新页面。
答案 0 :(得分:2)
这应该有效!:http://jsfiddle.net/d9vg5yhL/1/
<form name="process">
<input name="p_time" id='time' type="time" value="" />
</form>
使用Javascript:
function startTime() {
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
h = checkTime(h);
m = checkTime(m);
s= checkTime(s);
document.getElementById('time').value = h+":"+m+":"+s;
var t = setTimeout(function(){startTime()},1000);
}
function checkTime(i) {
if (i<10) {i = "0" + i} // add zero in front of numbers < 10
return i;
}
startTime();