JavaScript seconds to time string with format hh:mm:ss

前端 未结 30 1778
太阳男子
太阳男子 2020-11-22 07:19

I want to convert a duration of time, i.e., number of seconds to colon-separated time string (hh:mm:ss)

I found some useful answers here but they all talk about conv

30条回答
  •  余生分开走
    2020-11-22 07:29

    Here's my take on it:

    function formatTime(seconds) {
      const h = Math.floor(seconds / 3600);
      const m = Math.floor((seconds % 3600) / 60);
      const s = Math.round(seconds % 60);
      return [
        h,
        m > 9 ? m : (h ? '0' + m : m || '0'),
        s > 9 ? s : '0' + s
      ].filter(Boolean).join(':');
    }
    

    Expected results:

    const expect = require('expect');
    expect(formatTime(0)).toEqual('0:00');
    expect(formatTime(1)).toEqual('0:01');
    expect(formatTime(599)).toEqual('9:59');
    expect(formatTime(600)).toEqual('10:00');
    expect(formatTime(3600)).toEqual('1:00:00');
    expect(formatTime(360009)).toEqual('100:00:09');
    expect(formatTime(0.2)).toEqual('0:00');
    

提交回复
热议问题