当前位置: 首页 > 面试题库 >

在JavaScript / Node.js中将Youtube Data API V3视频时长格式转换为秒

姬墨竹
2023-03-14
问题内容

我正在尝试将JS / Node中的ISO 8601字符串转换为秒。我能想到的最好的是:

function convert_time(duration) {
    var a = duration.match(/\d+/g)
    var duration = 0

    if(a.length == 3) {
        duration = duration + parseInt(a[0]) * 3600;
        duration = duration + parseInt(a[1]) * 60;
        duration = duration + parseInt(a[2]);
    }

    if(a.length == 2) {
        duration = duration + parseInt(a[0]) * 60;
        duration = duration + parseInt(a[1]);
    }

    if(a.length == 1) {
        duration = duration + parseInt(a[0]);
    }
    return duration
}

当我输入“ PT48S”,“ PT3M20S”或“ PT3H2M31S”之类的字符串时,它可以工作,但是如果字符串为“
PT1H11S”,则失败了。有谁有更好的主意吗?


问题答案:

我建议您使用此小技巧来防止出现问题的情况:

function convert_time(duration) {
    var a = duration.match(/\d+/g);

    if (duration.indexOf('M') >= 0 && duration.indexOf('H') == -1 && duration.indexOf('S') == -1) {
        a = [0, a[0], 0];
    }

    if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1) {
        a = [a[0], 0, a[1]];
    }
    if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1 && duration.indexOf('S') == -1) {
        a = [a[0], 0, 0];
    }

    duration = 0;

    if (a.length == 3) {
        duration = duration + parseInt(a[0]) * 3600;
        duration = duration + parseInt(a[1]) * 60;
        duration = duration + parseInt(a[2]);
    }

    if (a.length == 2) {
        duration = duration + parseInt(a[0]) * 60;
        duration = duration + parseInt(a[1]);
    }

    if (a.length == 1) {
        duration = duration + parseInt(a[0]);
    }
    return duration
}

小提琴



 类似资料:
  • 我有一个应用程序,它只是一个动画(一些圆圈在移动)。 我想知道如何将这个动画保存为MP4之类的视频? 或者可以记录(捕获)节点内发生的事情并将其保存为视频格式吗?

  • 我需要将长数据格式(long)转换为宽格式(wide),条件如下(如果可能): 1) 所有数据文件都将是具有相同结构(id、名称、值)的长格式(long),但每个数据文件将具有不同的变量、值和变量数: 2) 每个数据文件将是不同的变量混合物(因子、整数、数字)。有些因素可能每个案例都有多个级别(从长远来看是水果和肉),我想为这些因素中的每个级别创建一个单独的虚拟变量(逻辑)。因子和数值变量的数量将

  • 问题内容: 我有一些格式的数据: 我需要将其转换为格式 如何在SQL中执行此操作? 问题答案: 如果您的得分列是固定的,并且不需要汇总,则可以使用多个和语句来生成所需的数据形状。例如 SQL小提琴:http://sqlfiddle.com/#!6 / f54b2 / 4/0

  • ffmpeg 是 *nix 系统下最流行的音视频处理库,功能强大,并且提供了丰富的终端命令,实是日常视频处理的一大利器! 实例 flac 格式转 mp3 音频格式转换非常简单:ffmpeg -i input.flac -acodec libmp3lame output.mp3。 ffmpeg 将会使用 libmp3lame 解码器将 input.flac 文件转换为 mp3 格式的 output.

  • 我使用的是Java8,我有一个方法接受长格式参数的日期,并从库返回中的日期。 在java版本<8之前,我使用,但是现在我需要使用,但是我找不到关于如何将值转换为的文档。 现在: 谢谢你的帮助!

  • 问题内容: 如何在SQL Server 2008中将小时格式的时间转换为小时格式的时间? 问题答案: 当前时间是否在类型为time的变量/列中?如果是这样,这很容易: 结果: 如果在变量中,则必须在运行CONVERT之后删除日期部分。如果在字符串中,请先将其添加到中,然后使用上面的代码。