【发布时间】:2017-04-09 16:21:44
【问题描述】:
我正在尝试构建时间倒计时,我正在发送一个以毫秒为单位的时间戳,并且每一秒我都会将此值减去当前时间以获得倒计时。
我正在使用这个网站来生成时间戳
https://www.epochconverter.com/
但是,例如,当我选择时间戳日期为三天时,我的脚本只检查小时、分钟和秒,而忘记了日、月或年。
示例:当我选择这个日期时 - 11/04/2017 20:00:00
我的脚本没有准确显示到达时间戳需要多少小时,它显示的是 3 小时,这是不正确的
我的代码:
var updateTime = setInterval(function() {
var getEpochEnding = new Date(1492111767000);
var getTimeNow = new Date();
var timeZone = getTimeNow.getTimezoneOffset();
var ctdMillis = new Date(Math.abs(getEpochEnding - (getTimeNow - (timeZone * 60000))));
var ctdSeconds = parseInt((ctdMillis / 1000) % 60);
var ctdMinutes = parseInt((ctdMillis / (1000 * 60)) % 60);
var ctdHours = parseInt((ctdMillis / (1000 * 60 * 60)) % 24);
if ((getTimeNow - (timeZone * 60000)) > getEpochEnding) {
ctdSeconds = 0;
ctdMinutes = 0;
ctdHours = 0;
clearInterval(updateTime);
}
document.getElementById('countdown').innerHTML = ("0" + ctdHours).substr(-2) + ":" + ("0" + ctdMinutes).substr(-2) + ":" + ("0" + ctdSeconds).substr(-2);
}, 1000);
JsFiddle:
【问题讨论】:
-
您可以考虑使用momentjs (momentjs.com/docs/#/displaying/fromnow),而不是自己编写此逻辑
-
在
var ctdHours = parseInt((ctdMillis / (1000 * 60 * 60)) % 24)这一行中,% 24表示除以24后的remainder,比如75会变成3。
标签: javascript