Jquery滑块。分钟两位数

时间:2015-09-07 11:06:44

标签: javascript jquery formatting

我有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 );
        }
    });
});

2 个答案:

答案 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]) );