是否有任何插件可以将各种格式的时间转换为可以存储在DB中的整数值(秒)?
示例:
"30m"
=> 1800
"30"
=> 1800
"2h"
=> 7200
"0.5h"
=> 1800
".5h"
=> 1800
"1"
=> 60
如果没有后缀,则应将号码解析为分钟。
答案 0 :(得分:2)
您可以尝试这样的事情:
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
,请计算传递小时数的秒数。否则,总是假设"分钟"。