将时间码转换为秒

问题描述:

我在使用JavaScript将时间码更改为帧时出现问题。 运行在30fps我们得到将时间码转换为秒

"00:00:01:00" = 30 frames 

到目前为止好,只是我检查的秒数,在它被转换成这样:

enter image description here

首先不知道这是怎么回事呢? ! 有人指出我有\ n而不是\ nf。

其次 返回的帧不正确。 1分钟应该是1800秒不是1800000

如果你能告诉我,如果这是一个安赫奖励积分。

// set the frame rate or Frame Rat as we like to call him 
var frameRat = 30 // fps 
var numOfFrames = 60 // animation frame count 
var animTime = "00:01:00:00" // time code 

var a = convertTimeToFrames(animTime, frameRat); 
var result = animTime + " at " + frameRat + " fps\n = " + a + " frames."; 
alert(result); 



function convertTimeCodeToSeconds(timeString, framerate) 
{ 

    var timeArray = timeString.split(":"); 
    var hours = timeArray[0] * 60 * 60; 
    var minutes = timeArray[1] * 60; 
    var seconds = timeArray[2]; 
    var frames = timeArray[3]*(1/framerate); 
    var str = "h:" + hours + "\nm:" + minutes + "\ns:" + seconds + "\f:" + frames; 
    alert(str) 
    var totalTime = hours + minutes + seconds + frames; 

    //alert(timeString + " = " + totalTime) 
    return totalTime; 
} 

function convertTimeToFrames(timeString, framerate) 
{ 
    var secs = convertTimeCodeToSeconds(timeString, framerate); 
    return secs * framerate; 
} 
+0

您的字符串中有'\ f:'而不是'\ nf:'。你是这个意思吗? – DocMax

+0

需求究竟是什么? – Ayush

你正在做数字和字符之间的操作。在分割后将所有值转换为数字,如下所示:

// set the frame rate or Frame Rat as we like to call him 
var frameRat = 30 // fps 
var numOfFrames = 60 // animation frame count 
var animTime = "00:01:00:00" // time code 

var a = convertTimeToFrames(animTime, frameRat); 
var result = animTime + " at " + frameRat + " fps\n = " + a + " frames."; 
alert(result); 



function convertTimeCodeToSeconds(timeString, framerate) 
{ 

    var timeArray = timeString.split(":"); 
    var hours = parseInt(timeArray[0]) * 60 * 60; 
    var minutes = parseInt(timeArray[1]) * 60; 
    var seconds = parseInt(timeArray[2]); 
    var frames = parseInt(timeArray[3])*(1/framerate); 
    var str = "h:" + hours + "\nm:" + minutes + "\ns:" + seconds + "\nf:" + frames; 
    alert(str) 
    var totalTime = hours + minutes + seconds + frames; 

    //alert(timeString + " = " + totalTime) 
    return totalTime; 
} 

function convertTimeToFrames(timeString, framerate) 
{ 
    var secs = convertTimeCodeToSeconds(timeString, framerate); 
    return secs * framerate; 
} 
+0

我认为可能是这种情况。 'alert(typeof frames)'带着号码 –

+0

返回''parseInt(n)'这里应该替换为'parseInt(n,10)'来避免无意的解释为八进制。 – DocMax