我试图显示每秒发生的最新日期和时间,但输出保持不变。我不想使用jquery,因为我正在学习如何使用javascript。主机在onload上调用显示功能。
function display()
{
var today = new Date();
var month = today.getMonth();
var day = today.getDay();
var year = today.getFullYear();
var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
var minute = today.getMinutes();
var seconds = today.getSeconds();
var milliseconds = today.getMilliseconds();
var output = month + '/' + day + '/' + year + ' - ' +
hour + ':' + minute + ':' + seconds + ':' + milliseconds;
setInterval(function() {
document.write(output);
}, 3000);
}
答案 0 :(得分:6)
试试这个:
function display()
{
var today = new Date();
var month = today.getMonth();
var day = today.getDay();
var year = today.getFullYear();
var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
var minute = today.getMinutes();
var seconds = today.getSeconds();
var milliseconds = today.getMilliseconds();
var output = month + '/' + day + '/' + year + ' - ' +
hour + ':' + minute + ':' + seconds + ':' + milliseconds;
document.write(output);
}
setInterval(display, 3000);
旁注: document.write
是你想要的吗?您可能希望在<span>
或<div>
中显示它。在这种情况下,document.getElementById('someId').innerHTML
有帮助。
另一个旁注: setInterval(display, 3000);
和setInterval('display();', 3000);
不同。有关详细信息,请参阅此answer。
答案 1 :(得分:2)
您需要在计时器功能中进行计算,如下所示:
function display()
{
setInterval(function() {
var today = new Date();
var month = today.getMonth();
var day = today.getDay();
var year = today.getFullYear();
var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
var minute = today.getMinutes();
var seconds = today.getSeconds();
var milliseconds = today.getMilliseconds();
var output = month + '/' + day + '/' + year + ' - ' +
hour + ':' + minute + ':' + seconds + ':' + milliseconds;
document.write(output);
}, 3000);
}
display();
答案 2 :(得分:0)
变量的值保持静态。因此,如果您不更改 outout 的值,它将保持不变。
因此,您需要计算间隔回调中的日期,然后显示它。