Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 如何转换';00:30:00';格式化为秒?_Javascript_Momentjs - Fatal编程技术网

Javascript 如何转换';00:30:00';格式化为秒?

Javascript 如何转换';00:30:00';格式化为秒?,javascript,momentjs,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 使用duration对象中的asSeconds moment.duration('00:30:00').asSeconds(); 您需要将

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

预期效果:

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

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

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

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


使用duration对象中的
asSeconds

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

您需要将
+
放在大括号内,使其成为总和

你应该把它放在一个
${}

因此,您的代码如下所示:

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}`;
}

你需要这样做

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

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

查看此处的小提琴

您可以通过将前一个值乘以
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是错误的,因为8分钟等于480加10秒

console.log(convert1000('01:01:10'));//3670
您需要先将字符串数字转换为整数。 这应该按照您的意愿进行:

let convert1000 = (timeString) => {
    let [hour, minute, second] = timeString.split(':').map(Number);
    return `${(hour* 3600) + (minute * 60) + (second)}`;
}
请注意,这将返回一个字符串;如果希望它是一个数字,只需删除模板。

尝试以下操作:

constconvert1000=(时间)=>{
常数[小时,分钟,秒]=时间分割(':');
返回时间*3600+分钟*60+秒*1;
};

console.log(convert1000('00:30:00'))为什么要在此处使用模板字符串?看起来很奇怪。可能只使用了一个${}的副本,但仍然很奇怪。可能是这样吗?你想要一个好的旧C的
sscanf
?唉,我不相信vanilla JS有。不知道为什么我会投反对票,因为这个问题被标记为momentjs…我的错,我原来的答案实际上不起作用。已更新。问题是sec是一个字符串
let convert1000 = (timeString) => {
    let [hour, minute, second] = timeString.split(':').map(Number);
    return `${(hour* 3600) + (minute * 60) + (second)}`;
}