如何将“ 00:30:00”格式转换为秒?

时间:2019-06-26 12:55:54

标签: javascript momentjs

我想以秒为单位转换格式示例'00:30:00'。这是我的方式。有没有办法在“模板字符串”中添加这些值?

预期效果:

convert1000('00:30:00')-> 1800

convert1000('00:00:10')-> 10

convert1000('00:08:10')-> 490

convert1000('01:01:10')-> 3670

const convert1000 = (time) => {
    const [hour, minute, sec] = time.split(':');

    if (hour !== "00") {
      return `${(hour* 3600)} + ${(minute * 60)} + ${(sec)}`;
    }

    if (minute !== "00") {
      return `${minute * 60} + ${sec} `;
    }

    return `${sec} `;
  }

6 个答案:

答案 0 :(得分:4)

使用momentjs个持续时间对象中的asSeconds

moment.duration('00:30:00').asSeconds();

答案 1 :(得分:4)

您可以通过将前一个值乘以60来拆分和减少值,然后将其相加。

const convert1000 = time => time.split(':').reduce((s, t) => s * 60 + +t, 0);
  
console.log(convert1000('00:30:00')); // 1800
console.log(convert1000('00:00:10')); // 10
console.log(convert1000('00:08:10')); // 58 is wrong, because 8 minutes is 480 plus 10 sec
console.log(convert1000('01:01:10')); // 3670

答案 2 :(得分:2)

您需要这样做

const convert1000 = (time) => {
  const [h,m,s] = time.split(':');
  let seconds = (h*3600) + (m * 60) + parseInt(s);
  return seconds;
}

alert(convert1000("00: 30: 00"))

在这里查看小提琴https://jsfiddle.net/q4zvsowe/

答案 3 :(得分:2)

您需要先将字符串数字转换为整数。 这应该可以按照您想要的方式工作:

let convert1000 = (timeString) => {
    let [hour, minute, second] = timeString.split(':').map(Number);
    return `${(hour* 3600) + (minute * 60) + (second)}`;
}

请注意,这将返回一个字符串;如果您希望它是数字,则只需删除模板即可。

答案 4 :(得分:1)

您需要将+放在括号中以使它们成为和。

您应该将其放在一个${}

所以您的代码如下:

const convert2000 = (time) => {
    const [hour, minute, sec] = time.split(':');

    if (hour !== "00") {
      return `${hour* 3600 + minute * 60 + sec}`;
    }

    if (minute !== "00") {
      return `${minute * 60 + sec} `;
    }

    return `${sec}`;
}

答案 5 :(得分:0)

尝试一下:

const convert1000 = (time) => {
  const [hour, minute, sec] = time.split(':');
  return hour * 3600 + minute * 60 + sec * 1;
};

console.log(convert1000('00:30:00'));