将时间码转换为秒

时间:2015-07-13 13:58:38

标签: javascript time

我在使用JavaScript将时间码更改为帧时遇到问题。 以30 fps的速度运行

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

到目前为止一切顺利,只有我检查它被转换为此的秒数:

enter image description here

首先不确定那里发生了什么?! 有人指出我有\ f而不是\ nf。

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

如果你能告诉我这是不是Ankh,那么可以获得奖励。

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

1 个答案:

答案 0 :(得分:1)

您正在进行数字和字符之间的操作。在拆分后将所有值转换为Numbers,如下所示:

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