formatering af tid
Jeg har fundet dette script, og jeg ved ikke hvor meget der kan bruges, men jkeg vil gerne have at et tekstfelt selv formatere inputtet til det jeg gerne vil have, og det er:11:11
Her angiver 1 tal. - Hvis nogen kan udrede en løsning vil jeg meget gerne have dette.
function format_time(obj)
{
errors = true;
timestr = obj.value.replace(/\s/,'');
// fjerner alle whitespaces
match = /^([0-2][0-9]?([,.][0-9]{1,2})?|([0-2]?[0-9]:|[0-2][0-9])[0-9][0-9]|[0-9])$/
if (timestr.search(match) != -1)
{
// passer ind i det tilladte mønster
// 1 11 11,5 11,50 11:30 1130
if (timestr.search(/[,.:]/) != -1)
{
// 11,2 11.2 eller 11:20
usescomma = timestr.search(/[,.]/) != -1; // er det , eller. notationen (ikke :)?
timestrArr = timestr.split(/[,.:]/); // split på et af de tre gyldige tegn
timer = (timestrArr[0].length == 2) ? timestrArr[0] : '0' + timestrArr[0];
minutter = timestrArr[1];
if (usescomma)
{
minutter = (minutter.length == 2) ? minutter : minutter + '0';
minutter = Math.round((minutter * 60) / 100) + '';
minutter = (minutter.length == 2) ? minutter : '0' + minutter;
}
timestr = timer + ":" + minutter;
}
else if (timestr.length == 1)
{
// 1
timestr = '0' + timestr + ':00';
}
else if (timestr.length == 2)
{
// 11 eller 01
timestr = timestr + ':00';
}
else
{
// 0100 format
timestr = timestr.replace(/([0-9]{2})([0-9]{2})/,'$1:$2');
}
// timestr er nu i formatet xx:xx men kan godt være 29:20 men ikke 12:60
if (Math.abs(timestr.split(':')[1]) > 60)
{
var hr = parseInt(timestr.split(':')[0]);
var mi = parseInt(timestr.split(':')[1]);
hr += parseInt(mi / 60);
mi = parseInt(mi % 60);
str_hr = '' + hr;
str_mi = '' + mi;
timestr = (str_hr.length == 1?'0'+ str_hr:str_hr) + ':' + (str_mi.length == 1?'0'+ str_mi:str_mi)
}
if (Math.abs(timestr.split(':')[0]) < 24)
{
errors = false;
}
}
if (errors)
{
// alert(fieldname + ' skal udfyldes efter formatet "hh:mm".');
// this.focus();
// obj.select();
// obj.focus();
return false;
}
else
{
obj.value = timestr;
return true;
}
}
