如何在Bootstrap datetimepicker中获得高于59的分钟值

时间:2016-11-17 22:52:25

标签: jquery eonasdan-datetimepicker

我在体育比赛中使用Bootstrap Datetimepicker表示活动时间。

时间以分钟为单位,以秒为单位,事件可能发生在23:11和62:17。但是,插件只允许最多59分钟的分钟值。

我可以以某种方式让插件允许其他分钟值吗?

目前我有一个输入

<input type="text" class="form-control event-time" value="00:00">

我像这样绑定插件:

$('.event-time').datetimepicker({format: 'mm:ss'});

使用该插件的主要原因是它为用户清理输入。例如,如果用户输入4.15,则会在模糊时自动更改为04:15。并且无效值将更改为空字段,从而向用户显示无法理解输入。

1 个答案:

答案 0 :(得分:0)

如果有人有类似的消毒时间输入问题,我最终编写了javascript(jQuery),可以自动修改输入为minutes:seconds格式。

这是功能和最小的例子。

尝试输入1:23 89m29s5468之类的内容,它会转换为89:29格式的某些有效值,通常与预期值相似。

&#13;
&#13;
function fixTime(field)
{
  var input = field.val()
  var delimiterPos = input.search(/\D/);   //find the first non-numeric symbol

  //everything numerical before that symbol is minutes
  var minutes = parseInt(input.substring(0, delimiterPos)) || 0;

  //everything numerical after that symbol is seconds
  var seconds = parseInt(input.substring(delimiterPos + 1)) || 0;

  //limit minutes to 100 and seconds to 60. Might be different in other cases
  minutes = minutes % 100;
  seconds = seconds % 60;

  //casting to string
  minutes = '' + minutes;
  seconds = '' + seconds;

  //prepending zeros to make values contain two symbols
  minutes = ('00'+minutes).substring(minutes.length);
  seconds = ('00'+seconds).substring(seconds.length);

  field.val(minutes + ':' + seconds);
}

//usage example
var timeToFix = $('.time-to-fix')
timeToFix.change(function() {
  fixTime(timeToFix);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" class="time-to-fix">
&#13;
&#13;
&#13;