我有jquery滑块,我想从中选择时间。但是从0到9的分钟显示为13:7
但不是13:07
jQuery(function() {
jQuery('#slider-time').slider({
range: true,
min: 300,
max: 1280,
step: 1,
values: [ 300, 793 ],
slide: function( event, ui ) {
var hours1 = Math.floor(ui.values[0] / 60);
var minutes1 = ui.values[0] - (hours1 * 60);
if(hours1.length < 10) {hours1= '0' + hours};
if(minutes1.length < 10) {minutes1 = '0' + minutes};
if(minutes1 == 0) minutes1 = '00';
var hours2 = Math.floor(ui.values[1] / 60);
var minutes2 = ui.values[1] - (hours2 * 60);
if(hours2.length < 10) {hours2= '0' + hours};
if(minutes2.length < 10) {minutes2 = '0' + minutes};
if(minutes2 == 0) minutes2 = '00';
jQuery('#amount-stop').val(hours1+':'+minutes1 );
jQuery('#amount-start').val(hours2+':'+minutes2 );
}
});
});
答案 0 :(得分:1)
尝试使用以下代码计算小时和分钟值
var hours1 = parseInt(ui.values[0] / 60 % 24, 10);
var minutes1 = parseInt(ui.values[0] % 60, 10);
在我的情况下,他们以两位数字返回值。
答案 1 :(得分:1)
在我的评论中包含建议(“数字没有长度,使用类似:if(minutes2 < 10)
”),也可以制作function timeToString()
以减少重复代码并增强可管理性,例如:
function timeToString(time){
var hours = Math.floor(time / 60),
minutes = time - (hours * 60);
if(hours < 10) {hours= '0' + hours};
if(minutes < 10) {minutes = '0' + minutes};
if(minutes == 0) minutes = '00';
return hours + ":" + minutes;
}
并在你的区块中使用它,例如:
jQuery('#amount-stop').val( timeToString(ui.values[0]) );
jQuery('#amount-start').val( timeToString(ui.values[1]) );