javascript - 人类可读的时间解析器

标签 javascript plugins time time-format

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

示例:

  • “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/

相关文章:

javascript - tinymce 例子中的 ed.onKeyDown

javascript - 在javascript中转义字符串

javascript - 如何在单页中绘制多个 Canvas ?

java - eclipse插件开发: how to open a custom editor from a cnf (on double click).

c++ - 尝试将存储在 char 中的时间转换为正常形式。打印一个随机值。怎么了?

javascript - Sencha Touch Framework 中的左侧导航 View (关于 Ext.data.TreeStore 的问题)

grails - 尝试渲染PDF时出现Grails渲染插件错误?

plugins - 终端中 zsh 顶部的固定行

javascript - 如何在angular js中使用if语句条件

ruby - Ruby 中的亚毫秒级时间测量