首页 > 解决方案 > Javascript:计算时差不会返回任何问题

问题描述

我正在尝试使用 hr/min/sec 格式计算开始和结束之间的时间差。我在下面的函数的问题是我console.log没有返回任何值。希望能得到一些帮助。

            var mf_start   = "10:30:30";
            var mf_end     = "11:10:10";

            function time_interval(mf_start,mf_end)
            {
                $s = mf_start;
                $e = mf_end;
                if ($s < $e)
                {
                    $a = $e - $s;
                }
                else
                {
                    $e = '+1 day',$e;
                    $a = $e - $s;
                }
                
                $h = Math.floor($a/3600);
                $m = Math.floor(($a%3600)/60);
                $s = $a%60;
                
                var str = ($h?$h+' hour ':'')+($m?$m+' minute ':'')+($s?$s + ' second ':'');
                return str.trim();
            }
            
            var c = time_interval(mf_start,mf_end);
            console.log(c);

控制台的屏幕截图,它是空白的:(主要问题)

1

我尝试了什么:

如果我执行以下代码,我会在修剪时收到意外的字符串错误

return trim(($h?$h.' hour ':'').($m?$m.' minute ':'').($s?$s.' second ':''));

所以我先用一个变量把它分开,然后用修剪返回。

预期输出(基于给定值):

39 minute 40 second

标签: javascriptfunctionreturntrimfloor

解决方案


请更改代码

$s = mf_start;
$e = mf_end;

$s = mf_start.split(":");
$s = Number($s[0])*3600 + Number($s[1])*60 + Number($s[2]);
$e = mf_end.split(":");
$e = Number($e[0])*3600 + Number($e[1])*60 + Number($e[2]);

推荐阅读