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

时间:2014-07-24 19:42:59

标签: javascript jquery

我有一个timeuntil字符串显示为12d 00:57:30 即。 DD' d' HH:MM:SS

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

2 个答案:

答案 0 :(得分:1)

我知道这对某些人来说听起来不太好,但如果你不想使用像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;

秒将是总数

答案 1 :(得分:1)

对于这样的事情,我喜欢moment.js。它有一种叫做“durations”的东西,非常适合这种情况。

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

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
}