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

Javascript 将数字格式化为时间,如hh:mm,javascript,jquery,formatting,format,Javascript,Jquery,Formatting,Format,我有一个iput字段: <input type="text" name="time" class="time" value="3" /> 其余的你都知道。我如何在jquery/javascript中解决这个问题 这是我在jQuery中尝试的: $('input').blur(timeFormat); function timeFormat(e){ skjema.find('input.tid').each(function(){ if($(this).va

我有一个iput字段:

<input type="text" name="time" class="time" value="3" />
其余的你都知道。我如何在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');
            }
        }
    });
}
这是我现在制作的,它可以完成任务,但有点笨重:)


您可以使用库尝试以下操作:-

 var dateString = "12";
 var date = new Date.parseExact(dateString, "hh:mm");
伪:

  • val
    ← 字段中的值(
    $('.time').val()
  • colonPos
    val
  • 如果
    colonPos
    等于-1,
    result
    ← <代码>padZero(val)+':00'
  • 否则,
    结果
    padZero(val[:colonPos])+':'+padZero(val[colonPos+1:])
  • 检查这个


    您可以使用一些简单的正则表达式:

    function time( str ) {
        if ( !/:/.test( str ) ) { str += ':00'; }
        return str.replace(/^\d{1}:/, '0$&').replace(/:\d{1}$/, '$&0' );
    }
    
    如果要确保只接受预期格式,请在函数顶部添加此行:

    if ( /[^:\d]/.test( str ) ) { return false; }
    
    演示:

    函数prettyTime(t){
    //将输出一个提供前导零和分钟字段的时间
    //(不需要jQuery)
    x=t.split(“:”);
    对于(var i=0;i也许你可以试试插件..对我有用

    用法示例:

    $("#tbPlain").timefield();
    $("#tb12Hour").timefield({ 'hourFormat': '12'});
    $("#tb24Hour").timefield({ 'hourFormat': '24'});
    $("#tbWithInvalidHandler").timefield({ 
            'hourFormat': '24',
            'onError'   : function(){
                    alert(this.value+' is not a valid time!');
                    this.style.backgroundColor='red';
                }
            });
    $("#tbOnOff").timefield();
    $("#btnTurnOff").click(function(){
                    $("#tbOnOff").timefield('turnOffTimeField');
                });
    
    现场示例:

    $("#tbPlain").timefield();
    $("#tb12Hour").timefield({ 'hourFormat': '12'});
    $("#tb24Hour").timefield({ 'hourFormat': '24'});
    $("#tbWithInvalidHandler").timefield({ 
            'hourFormat': '24',
            'onError'   : function(){
                    alert(this.value+' is not a valid time!');
                    this.style.backgroundColor='red';
                }
            });
    $("#tbOnOff").timefield();
    $("#btnTurnOff").click(function(){
                    $("#tbOnOff").timefield('turnOffTimeField');
                });
    

    以时间格式插入冒号
    函数formatTime(objFormField){
    intFieldLength=objFormField.value.length;
    如果(intFieldLength==2 | | intFieldLength==2){
    objFormField.value=objFormField.value+“:”;
    返回false;
    } 
    }
    输入时间
    
    我认为这里需要一个特定的库。是的,你需要有datejs库。我也更新了我的答案。我试过了,发现了datejs库。但我认为我不会有任何好处。更新我的问题。你应该在这里添加一个示例。
    if ( /[^:\d]/.test( str ) ) { return false; }
    
    function prettyTime(t){
      // will output a time providing leading zeros and minute field
      // (doesn't need jQuery)
    
      x=t.split(":");
    
      for (var i=0; i<2; i++)
        x[i] = (x[i]) ? Array(3-x[i].length).join('0') + x[i] : '00';
    
      return x.join(":");
    
    }
    
    // --
    
    $('input').blur(timeFormat);
    
    function timeFormat(e){
        skjema.find('input.tid').each(function(){
    
            $(this).val(function(i, v) { return prettyTime(v); })
    
        });
    }
    
    $("#tbPlain").timefield();
    $("#tb12Hour").timefield({ 'hourFormat': '12'});
    $("#tb24Hour").timefield({ 'hourFormat': '24'});
    $("#tbWithInvalidHandler").timefield({ 
            'hourFormat': '24',
            'onError'   : function(){
                    alert(this.value+' is not a valid time!');
                    this.style.backgroundColor='red';
                }
            });
    $("#tbOnOff").timefield();
    $("#btnTurnOff").click(function(){
                    $("#tbOnOff").timefield('turnOffTimeField');
                });
    
    <title>Insert Colon in the Time Format</title>
    
    <script type="text/javascript">
    function formatTime(objFormField){
    intFieldLength = objFormField.value.length;
    
    if(intFieldLength==2 || intFieldLength == 2){
         objFormField.value = objFormField.value + ":";
         return false;
        } 
    }
    </script>
    
    Enter time <input type="text" maxlength="5" minlength="5" onKeyPress="formatTime(this)"/>