在javascript / jquery中将时间字符串转换为秒

我有一个timeuntil字符串显示为12d 00:57:30即。 dd’d’hh:mm:ss

如何在javascript或jquery中将其转换为秒数。

我知道这对某些人来说听起来不太好,但是如果你不想使用像moment.js这样的插件。 你可以像这样解析它(仅适用于格式dd’d’hh:mm:ss):

var days = parseInt(time.split('d ')[0]); var hours = parseInt(time.split('d ')[1].split(":")[0]); var mins = parseInt(time.split('d ')[1].split(":")[1]); var secs = parseInt(time.split('d ')[1].split(":")[2]); hours += days * 24; mins += hours * 60; secs += mins * 60; 

秒将是总数

对于这样的事情,我喜欢moment.js 。 它有一种称为“ 持续时间 ”的东西,对于这种情况来说是完美的。

首先,你需要将你的字符串解析成碎片。 既然您知道格式,我们可以使用正则表达式。

 var time = '12d 00:57:30'; var timeParts = time.match(/(\d+)d (\d{2}):(\d{2}):(\d{2})/); if(timeParts !== null){ var timeUntil = moment.duration({ days: timeParts[1], hours: timeParts[2], minutes: timeParts[3], seconds: timeParts[4] }); var timeSeconds = timeUntil.as('seconds'); console.log(timeSeconds); // 1040250 }