输入字段的时间如hh:mm。
任何具有
功能的人检查时间语法是否正确。
如果还有其他任何内容,请更改为:
。输入.,;
分隔小时和分钟。
格式化时间最接近15分钟。例如。 05 - > 00,08 - > 15。
编辑: 输入来自:
<input name=event_time_end id=event_time_end type=text maxlengt=5 size=5 value='' onblur='toTime(this);'>
此致
答案 0 :(得分:2)
您可以将分钟数除以15,然后将舍入结果乘以右四分之一的15。
var minutes;
for (minutes = 0; minutes < 60; minutes++) {
console.log(minutes + ': ' + (Math.round(minutes / 15) * 15));
}
&#13;
答案 1 :(得分:1)
此解决方案强制执行语法,删除多余字符并将结果格式化为有效时间:
console.clear();
function closestQuarter(n) {
return (Math.round(n % 60 / 15) * 15) % 60;
}
function toTime(str) {
str = str
//Replace non-digist with ':'
.replace(/(?:\D*)?\D+/g, ':')
//Replace first ':' with '*' to give us a target
.replace(':', '*')
//Remove ':'
.replace(/:/g, '')
//Split by '*'
.split('*');
//In case of empty string
if (str.length < 1) {
str.push('00');
}
//In case of only hours
if (str.length < 2) {
str.push('00');
}
for (var i = 0; i < str.length; i++) {
if (str[i].length > 2) {
str[i] = str[i].substr(0, 2);
}
if (str[i].length == 0) {
str[i] = '00';
}
}
//Force 0-23
str[0] = (parseInt(str[0]) % 24).toString();
//Round to quarter
str[1] = closestQuarter(parseInt(str[1])).toString();
//Prepend '0' if needed
for (var i = 0; i < str.length; i++) {
if (str[i].length < 2) {
str[i] = '0' + str[i];
}
}
//Return a ':' joined string
return str.join(':')
}
//Tests
console.log([toTime('21:45'),
toTime('21:4'),
toTime('1:3'),
toTime('1.3'),
toTime('1.3i3'),
toTime('13.37pm')
]);
function displayInHTML() {
//Get value from element
var input = (document.getElementById("time").value).toString();
var output = document.getElementById("output");
output.innerHTML = toTime(input);
}
<input type="text" id="time" name="time" onkeyup="displayInHTML()"/>
<textarea style="width:100%" id="output" readonly></textarea>
答案 2 :(得分:0)
要将数分钟缩短到最接近的四分之一,您可以使用:
var x = minutes + 7;
minutes = x - (x % 15)
var minutes, x;
for (minutes = 0; minutes <= 50; minutes++) {
x = minutes + 7;
console.log(minutes + ' : ' + (x - (x % 15)));
}
&#13;