2012-10-24 67 views
4

我有一個iput場:格式的數字像HH時間:毫米

<input type="text" name="time" class="time" value="3" /> 

我需要的價值是一樣的我需要什麼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 

你知道其餘的。我怎樣才能解決這個在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'); 
      } 
     } 
    }); 
} 

這就是我現在和它的工作,但它是有點笨重:)

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); 
    }); 
} 
+1

你忘了代碼.. – elclanrs

回答

2

,你可以試一下像這樣利用datejs庫: -

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

我認爲它需要一定的圖書館這裏。 – elclanrs

+0

是的,你需要有datejs庫。更新我的回答以及 –

+0

我試過了,發現了關於datejs庫。但我不認爲我會做任何好事。更新我的問題。 – BennyLava

0

僞:

  1. val←從字段值($('.time').val()
  2. colonPos←在val
  3. 如果colonPos等於-1的.位置,resultpadZero(val) + ':00'
  4. 否則,resultpadZero(val[:colonPos]) + ':' + padZero(val[colonPos + 1:])
1

檢查此DEMO

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

function timeFormat(e){ 
    $("div").find('input').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'); 
      } 
      if(tid.indexOf(':') == 2){ 
       $(this).val(tid.toString() + '0'); 
      } 
     } 
    }); 
}​ 
5

你可以用一些簡單的正則表達式做到這一點:

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

如果你想確保只有預期的格式被接受,在函數的頂部添加此行:

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

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

0
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); }) 

    }); 
} 
-2

也許ü可以嘗試this插件..爲我工作

應用實例:

$("#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'); 
      }); 

活生生的例子:

https://jsfiddle.net/sajjansarkar/bst3cw2g/

+0

你應該在這裏添加一個例子。 –

+0

@RizbanAhmad對不起,完成了。 –

0
<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)"/> 
相關問題