将数字格式化为时间,如hh:mm

Ben*_*ava 4 javascript format formatting jquery

我有一个输入字段:

<input type="text" name="time" class="time" value="3" />
Run Code Online (Sandbox Code Playgroud)

我需要这个价值就像03:00

更多我需要的例子:

1 = 01:00
12 = 12:00
12:2 = 12:20
2:2 = 02:20
02:2 = 02:20
340 = 340:00
340:1 = 340:10
Run Code Online (Sandbox Code Playgroud)

你知道其余的.我怎样才能在jquery/javascript中解决这个问题?

这是我在jQuery中尝试的:

$('input').blur(timeFormat);

function timeFormat(e){
    skjema.find('input.tid').each(function(){
        if($(this).val().length != 0){
            var tid = $(this).val().toString();

            if(tid.length == 1){

                $(this).val(String("0" + tid));

            }
            if(tid.indexOf(':') == -1){
                $(this).val(tid.toString() + ':00');
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在所做的,它完成了这项工作,但它有点笨重:)

function timeFormat(e){
    skjema.find('input.tid').each(function(){
        if($(this).val().length != 0){
            var tid = $(this).val().toString();
            tid = (tid.length == 1) ? '0' + tid : tid;
            tid = (tid.indexOf(':') == -1) ? tid + ':00' : tid;
            if(tid.indexOf(':') != -1){
                var arr = tid.split(':');
                var before = arr[0].toString();
                var after = arr[1].toString();
                before = (before.length == 0) ? '00' : before;
                before = (before.length == 1) ? '0' + before : before;
                after = (after.length == 0) ? '00' : after;
                after = (after.length == 1) ? after + '0' : after;
                console.log('before: ' + before + ' After: ' + after);
                tid = before + ':' + after;
            }
        }
        $(this).val(tid);
    });
}
Run Code Online (Sandbox Code Playgroud)

elc*_*nrs 5

你可以用一些简单的正则表达式做到这一点:

function time( str ) {
    if ( !/:/.test( str ) ) { str += ':00'; }
    return str.replace(/^\d{1}:/, '0$&').replace(/:\d{1}$/, '$&0' );
}
Run Code Online (Sandbox Code Playgroud)

如果您想确保只接受预期的格式,请在函数顶部添加以下行:

if ( /[^:\d]/.test( str ) ) { return false; }
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/elclanrs/MzgMz/