从帧创建时间码

wax*_*cal 5 javascript string formatting time

我的 FPS(每秒帧数)为 30。到目前为止,我的总 FPS 为 1020。我想将其显示为格式化时间码,如下所示。

var fps = 30;
var currentFrame = 1020;

var resultString = ; // HH:MM:SS:FF
Run Code Online (Sandbox Code Playgroud)

是否有任何内置的 Javascript 函数可以用于这样的格式化?

需要明确的是,我需要将字符串格式化为:HH:MM:SS:FF

Luc*_*een 1

尝试这个:

    var fps = 30;
    var currentFrame = 169;
    var SS = Math.floor(currentFrame / fps);
    var MM = Math.floor(SS / 60);
    var HH = Math.floor(MM / 60);
    var FF = currentFrame - (SS * fps);

    function pad(str, width, what, left) {
        str = String(str);
        what = String(what);
        var w = width - str.length;

        if (left) {
            return (new Array(w + 1)).join(what) + str;
        } else {
            return str + (new Array(w + 1)).join(what);
        }
    }

    var i,
        timecode = [HH, MM, SS, FF];

    for (i = 0; i < timecode.length; i += 1) {
        timecode[i] = pad(timecode[i], 2, 0, true);
    }

    var resultString = timecode.join(':'); // HH:MM:SS:FF
Run Code Online (Sandbox Code Playgroud)