Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 如何使用简单JS将秒值格式化为时间字符串_Javascript - Fatal编程技术网

Javascript 如何使用简单JS将秒值格式化为时间字符串

Javascript 如何使用简单JS将秒值格式化为时间字符串,javascript,Javascript,我试图将给定的秒数转换为字符串(即120=2:00分钟)。我现在被我的代码卡住了,并且得到了错误的答案。我想使用我已经有的代码,所以请让我知道我是否仍然可以使用它,只是添加到它,或者如果我需要重新开始 function prettyTime(num) { if (num < 60) { return console.log(num + "s"); } var t = num/60, m = Math.floor(t/60), s = t - m

我试图将给定的秒数转换为字符串(即120=2:00分钟)。我现在被我的代码卡住了,并且得到了错误的答案。我想使用我已经有的代码,所以请让我知道我是否仍然可以使用它,只是添加到它,或者如果我需要重新开始

function prettyTime(num) {
  if (num < 60) {
    return console.log(num + "s");
  }

  var t = num/60,
      m = Math.floor(t/60),
      s = t - m * 60;

  if (num > 60) {
    mins = t + m;
    return console.log(mins + ":" + "00");
  }
}
prettyTime(123);
函数prettyTime(num){
如果(数量<60){
返回console.log(num+“s”);
}
变量t=num/60,
m=数学楼层(t/60),
s=t-m*60;
如果(数量>60){
分钟=t+m;
返回console.log(分钟+”:“+”00”);
}
}
prettyTime(123);
试试这个:

function prettyTime(num) {
    if (num < 60) {
        return console.log(num + "s");
    }

    hr = Math.floor(num/3600);
    t = num%3600;
    min = Math.floor(t/60);
    sec = t%60;

    return console.log(hr + ":" + min + ":" + sec);
}
prettyTime(123);
函数prettyTime(num){
如果(数量<60){
返回console.log(num+“s”);
}
hr=数学楼层(num/3600);
t=num%3600;
最小值=数学楼层(t/60);
sec=t%60;
返回控制台日志(hr+“:“+min+”:“+sec);
}
prettyTime(123);

试试这个:

function prettyTime(num) {
    var secs=num;
    mins=Math.floor(secs/60);
    secs=mins?secs%60:secs;
    hrs=Math.floor(mins/60);
    mins=hrs?mins%60:mins;
    days=Math.floor(hrs/24);
    hrs=days?hrs%24:hrs;
    year=Math.floor(days/365);
    days=year?days%365:days;
    return console.log(''+num+' secs = '+year+' years, '+days+' days, '+hrs+' hours, '+mins+' minutes, '+secs+' seconds.');
   }
prettyTime(123);
当你试图在几分钟内转换完它们后获得剩余的秒数时,比如:
s=t-m*60

javascript具有特殊的功能:

%
运算符称为模运算符;在
c
中将
a除以b
后,它给出余数
c=a%b
。 因此,在你的情况下:
m=s/60
s=s%60

?:
称为三元运算符,如下所示:

条件?真实陈述:虚假陈述

表示如果条件
布尔表达式
满足,则计算
真实部分
<代码>错误
否则


希望对你有帮助。干杯。

有什么特别的原因可以让给定的时间总是以秒为单位吗?我是在重新发明轮子吗?我对js完全是个新手D@MattYes,给定的时间总是以秒为单位。@Vedant
t
m
变量的用途是什么?你能解释一下吗?为什么OP要尝试这个?他的代码有什么问题?你的代码是如何解决的?请解释问题和您的解决方案,不要只发布代码。@FelixKling编辑了我的答案。现在看看,可以了吗?是的,它稍微好一点,但它仍然不能解释OP代码的错误。OP为什么要尝试这个?他的代码有什么问题?你的代码是如何解决的?请解释问题和您的解决方案,不要只发布代码。*她的代码。这确实有效,我理解为什么,但是的,请下次解释。我只是想确保我完全理解它。谢谢你的回答。