Javascript 将数字格式化为时间,如hh:mm
我有一个iput字段: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
<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)"/>