返回博客

JS 时间转换为字幕时间,生成字幕

JavaScript 代码实现将时间戳转换为字幕时间格式,并生成字幕文件。包含 `srtTimestamp` 函数用于时间格式化,以及 `inputToSRT` 函数用于生成 SRT 字幕格式文本。

Mt.r
|

记一下格式化时间算法

function srtTimestamp(params) {
  let milliseconds = params;
  let seconds = Math.floor(milliseconds / 1000);
  let minutes = Math.floor(seconds / 60);
  let hours = Math.floor(minutes / 60);
  milliseconds = milliseconds % 1000;
  seconds = seconds % 60;
  minutes = minutes % 60;
  return (
    (hours < 10 ? '0' : '') +
    hours +
    ':' +
    (minutes < 10 ? '0' : '') +
    minutes +
    ':' +
    (seconds < 10 ? '0' : '') +
    seconds +
    ',' +
    (milliseconds < 100 ? '0' : '') +
    (milliseconds < 10 ? '0' : '') +
    milliseconds
  );
}

function inputToSRT(params, index) {
  return (
    index +
    1 +
    '\r\n' +
    srtTimestamp(params.startTime) +
    ' --> ' +
    srtTimestamp(params.endTime) +
    '\r\n' +
    params.text +
    '\r\n\r\n'
  );
}