js怎样将秒拼接为时分秒显示?

js怎样将秒拼接为时分秒显示?

要求:当秒数小于60时,忽略不计;当秒数大于60时,转化为“……分钟”;当秒数大于3600时,转化为“……小时……分钟”。

阅读 31.2k
6 个回答
var result = data[0].value;
function resultFormat(result) {
    var h = Math.floor(result/3600%24);
    var m = Math.floor(result/60%60);
    if (h < 1) {
        return result = m + "分钟";
    } else {
        return result = h + "小时" + m + "分钟";
    }
}
console.log(resultFormat(result));

我这里有一个秒转化成时分秒的例子,题主根据你自己的要求改改吧

        //秒转化成 时分秒
        function secondToDate(result) {
            var h = Math.floor(result / 3600);
            var m = Math.floor((result / 60 % 60));
            var s = Math.floor((result % 60));
            return result = h + "小时" + m + "分钟" + s + "秒";
        }

算法:
1、做一个Timer类:

属性:
    value:当前的时间
    limit:用来设置反转上限(就是比如秒到59,然后“啪”变成0的界限)
函数:
    increase:每次执行+1
    getValue:取值

2、时、分、秒都new这个类,初始化

比如:
var hour = new Timer(24)
var minute = new Timer(60)
你可以讲当前时间也作为初始参数传入

3、入口函数控制逻辑:

逻辑很简单,秒开始,increase之后,每次获取值,判断是否为0。如果为0,说明翻转了,则,分increase。分,小时如法炮制。

/**
 * 格式化秒
 * @param result
 * @returns {string}
 */
export function formatSecond(result) {
  const h = Math.floor((result / 3600) % 24);
  const m = Math.floor((result / 60) % 60);
  const s = Math.floor(result % 60);
  result = s + "秒";
  if (m > 0) {
    result = m + "分钟" + result;
  }
  if (h > 0) {
    result = h + "小时" + result;
  }

  return result;
}

那就判断秒数是多少,达到59秒后分钟值加1,当分钟值也达到59分59秒后,小时值加1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏