是否有任何插件可以将各种格式的时间转换为我可以存储在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/