是否有任何插件可以将各种格式的时间转换为我可以存储在DB中的整数值(秒)?

例子:


"30m" => 1800
"30" => 1800
"2h" => 7200
"0.5h" => 1800
".5h" => 1800
"1" => 60


如果没有后缀,则数字应解析为分钟。

最佳答案

您可以尝试这样的事情:



function parseToSeconds(timeString){
    var seconds = parseFloat(timeString);
    if(timeString.indexOf("m") != -1){
        seconds *= 60;
    }
    if(timeString.indexOf("h") != -1){
        seconds *= 3600;
    }
    return seconds;
}

alert("1: " + parseToSeconds("1") + "\n" +
      "1m: " + parseToSeconds("1m") + "\n" +
      "1h: " + parseToSeconds("1h") + "\n" +
      "1.5: " + parseToSeconds("1.5") + "\n" +
      "1.5m: " + parseToSeconds("1.5m") + "\n" +
      "1.5h: " + parseToSeconds("1.5h"));





这将正确转换您的大多数示例。但是,例如,如果未指定“格式” 30,则将假定字符串已经以秒为单位。

如果要将参数解释为分钟,如果没有后缀,则可以执行以下操作:

function parseToSeconds(timeString){
    var seconds = parseFloat(timeString);
    if(timeString.indexOf("h") != -1){
        return seconds * 3600;
    }
    return seconds * 60;
}


如果字符串包含h,请从经过的小时数中计算秒数。否则,请始终假设“分钟”。

关于javascript - 可读的时间解析器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29119328/

10-09 10:00