Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 建筑时间倒计时_Javascript - Fatal编程技术网

Javascript 建筑时间倒计时

Javascript 建筑时间倒计时,javascript,Javascript,我试图建立一个时间倒计时,我发送一个以毫秒为单位的时间戳,每秒钟我将这个值减去当前时间,得到倒计时 我正在使用这个网站生成时间戳 https://www.epochconverter.com/ 但是当我选择时间戳日期为三天时,我的脚本只检查小时、分钟和秒,而忘记了日期、月份或年份 示例:当我选择此日期时-2017年4月11日20:00:00 我的脚本没有显示我的示例,它显示了到达时间戳需要多少小时,它显示了3个小时,这是不正确的 我的代码: var updateTime = setInterv

我试图建立一个时间倒计时,我发送一个以毫秒为单位的时间戳,每秒钟我将这个值减去当前时间,得到倒计时

我正在使用这个网站生成时间戳

https://www.epochconverter.com/
但是当我选择时间戳日期为三天时,我的脚本只检查小时、分钟和秒,而忘记了日期、月份或年份

示例:当我选择此日期时-2017年4月11日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:

从ctdHours表达式中删除%24并在innerHTML表达式中更改ctdHours:

    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));

    if ((getTimeNow - (timeZone * 60000)) > getEpochEnding) {

        ctdSeconds = 0;
        ctdMinutes = 0;
        ctdHours = 0;
        clearInterval(updateTime);
    }

    document.getElementById('countdown').innerHTML = ctdHours + ":" + ("0" + ctdMinutes).substr(-2) + ":" + ("0" + ctdSeconds).substr(-2);

}, 1000);
尽管此解决方案在小时内不会显示前导零:1:23:45,而不是原来的01:23:45。

从ctdHours表达式中删除%24并更改innerHTML表达式中的ctdHours:

    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));

    if ((getTimeNow - (timeZone * 60000)) > getEpochEnding) {

        ctdSeconds = 0;
        ctdMinutes = 0;
        ctdHours = 0;
        clearInterval(updateTime);
    }

    document.getElementById('countdown').innerHTML = ctdHours + ":" + ("0" + ctdMinutes).substr(-2) + ":" + ("0" + ctdSeconds).substr(-2);

}, 1000);

虽然这个解决方案不会显示小时数:1:23∶45,而不是原来的01:23∶45。< /P>,而不是自己编写这个逻辑,你可以考虑在VAR CTDHOLL=PARSETICTCTDMLIIS/1000×60×60% 24中使用Mangjjs,% 24意味着24除以后。因此,例如,75将被更改为3,而不是自己编写这个逻辑,您可以考虑使用Valjjs在行var CTdHeals= PARSETICTCDMILIS/1000×60×60% 24中,%24表示24除以后。例如,75将被更改为3。