jQuery timer without date



我想获得两个日期之间的差异,然后想实现向后的计时器以显示剩下的时间,并且每秒之后应更新时间。我想在140:20:14之类的日期之间显示总小时。我正在使用setInterval函数更新计时器,并使用moment.js从时间上减去秒。我正在使用以下PHP代码计算总时间:

$difference = $datetime1->diff($datetime2);
$hours = $difference->h + ($difference->days*24);
$minutes = $difference->i;
$seconds = $difference->s;
$difference =  "$hours:$minutes:$seconds";

,但是如果数小时少于24,则可以正常工作,否则显示错误的时间。

php脚本返回正确的结果,但jQuery脚本在减去秒后返回错误的结果

 var result_time = moment(result_time_left, 'hh:mm:ss').subtract('seconds', 1).format('HH:mm:ss');

在这里剩下的时间是PHP脚本返回的结果。

我找不到它的解决方案。

请帮助。

矩(result_time_left,'hh:mm:ss')将解释为140:20:14',为14小时20分钟14秒。这就是为什么您没有看到预期的结果。

如果您可以同时将$ datetime1和$ datetime2打印到JS空间,则力矩应该能够处理日期,并且可以在那里减去它们

我创建了一个自定义功能来更新计时器,因为我无法为此获得任何其他解决方案。在此处发布我的答案,以便将来有人需要相同的内容,那么他们可以参考此代码。欢迎建议

功能updateTimer(时间){

split_time = update_time.split(':');
h = split_time[0]; m = split_time[1]; s = split_time[2];

if(s > 0)
{ 
    s = s-1;
}
else if(s == 0)
{
    s = 59;
    if(m != 0)
    {
        m = m-1;
    }
    else
    {
        m = 59;
        h = h - 1;
    }
}
else if(m == 0)
{
    s = s-1;
    m = 59;
    h = h-1
}

if(s <10)
{
    s = '0'+s;
}
if(m.length == 1 && m <10)
{
    m = '0'+m;
}
if(h < 10 && h.length == 1)
{
    h = '0'+$.trim(h);
}
if(m==0 && h==0 && s == 0)
{
    update_time = time;
}
update_time = h+ ':' + m + ':' + s;
return update_time;

}

最新更新