我想显示两次之间的差异。
第一次是我可以显示的实际时间:
window.setInterval("timefunc()",1000);
function timefunc(){
d = new Date ();
h = (d.getHours () < 10 ? '0' + d.getHours () : d.getHours ());
m = (d.getMinutes () < 10 ? '0' + d.getMinutes () : d.getMinutes ());
s = (d.getSeconds () < 10 ? '0' + d.getSeconds () : d.getSeconds ());
document.getElementById("time").innerHTML =
+ h + ':' + m + ':' + s;
}
现在我想扩展这个功能。第二次是每天晚上8点一样。
现在例如下午6:30。在这里,我想显示剩下的倒计时时间。在这种情况下,例如:“剩下的时间:1:29:59”。当时间到了,应该重新加载页面。
我是Javascript的新手,并没有找到任何地方的例子。
如果有人可以帮助我,我真的很感激。
非常感谢。
答案 0 :(得分:0)
您可以使用以下方式在晚上8:00(20:00)创建日期对象:
var d = new Date();
d.setHours(20,0,0,0);
要查找两个日期之间的差异(以毫秒为单位),只需从另一个中减去一个:
var ms = d - new Date();
要转换为hh:mm:ss:
var hours = ms / 3.6e6 | 0;
var mins = (ms % 3.6e6) / 6e4 | 0;
var secs = (ms % 6e4) / 1e3 | 0;
要填充一位数字:
function pad(n) {return (n<10? '0':'') + n;}
并格式化输出:
pad(hours) + ':' + pad(mins) + ':' + pad(secs);
也许你希望倒计时在晚上8点后打勾。在这种情况下,只需检查当前日期是否在晚上8点之后。如果是,只需在晚上8点的日期对象的日期添加一个:
var d = new Date();
d.setHours(20,0,0,0);
var now = new Date();
if (d < now) d.setDate(d.getDate() + 1);
因此,如果现在是在晚上8点(20:00)之后, d 明天是晚上8点。