2

每当分钟超过 59 时,我正在使用 jQuery 将分钟转换为小时;小时更改为 1。

到目前为止我已经尝试过了-

<script type="text/javascript">
    $(document).ready(function () {
        $('.minutes').change(function () {
            if ($('.minutes').val() > 59) {
                Math.floor($('.hour').val()) = ($(this).val()) + 1;
            }

        });
    });


</script>

Jsfiddle 链接 -分钟到小时

每次超过 60 倍时,我希望分钟显示转换后的小时。

感谢您的时间。

4

7 回答 7

5

这是JSFiddle

$(document).ready(function () {
    $('.minutes').change(function () {
        if ($('.minutes').val() > 59) {
            //Math.floor($('.hour').val() )= $(this).val() + 1;
            var min = $('.minutes').val();
            var hr = Math.floor(min / 60);
            var hrTemp = Math.floor($('.hour').val());
            var remMin = min % 60;
            $('.hour').val(hr + hrTemp);
            $('.minutes').val(remMin);
        }

    });
});
于 2013-05-08T05:03:49.757 回答
3

如果分钟超过 120,添加1不会产生正确的小时,​​而不是通过添加 1 来硬编码值,您可以将分钟除以 60 并将结果添加到.hour元素的值。

$(document).ready(function () {
    $('.minutes').change(function () {
        var min = + this.value;
        if (min > 59) {
            this.value = min % 60;
            $('.hour').val(function (_, oldValue) {
                return +oldValue + Math.floor(min / 60);
            })
        }
    });
});

http://jsfiddle.net/GZEaH/

于 2013-05-08T04:59:04.287 回答
2

这实际上只是一些基本的数学。

// get value
var minutes = parseInt($('.minutes').val());

// calculate
var hours = Math.floor(minutes / 60);
minutes = minutes % 60;

// set new values
$('.hour').val(hours);
$('.minutes').val(minutes);

如果您不知道做什么%:它是运算符:

在计算中,模(有时称为模)运算求一个数除以另一个数的余数。

于 2013-05-08T04:59:15.920 回答
1
$(document).ready(function() {
var hours = Math.floor( $('.minutes').val() / 60);          
var minutes = $('.minutes').val() % 60;


$('.hour').val(hours);
$('.minutes').val(minutes);    

});
于 2013-05-08T05:02:50.063 回答
0

这会将您的分钟文本框值转换为小时。[记住这段代码不会改变分钟文本框的值;]
http://jsfiddle.net/5wcaQ/12/

$(document).ready(function () {
    var jqMin = $('.minutes'),
        jqHour = $('.hour');
    jqMin.change(function () {
        if ( jqMin.val() > 59) {
            console.log ( jqMin.val() + ' - ' + ( jqMin.val() / 60 ) );
            jqHour.val ( Math.floor ( jqMin.val() / 60 ) );
        }

    });
});
于 2013-05-08T05:19:22.530 回答
0

检查 jsFiddle http://jsfiddle.net/5wcaQ/9/上的示例代码

$('.minutes').change(function () {
            var minutes = parseInt($('.minutes').val());
            var hour = parseInt($('.hour').val() == '' ? '0' : $('.hour').val());
            var excessHour = parseInt(minutes / 60);
            minutes = minutes - (excessHour * 60);
            $('.minutes').val(minutes);
            excessHour += hour;
            $('.hour').val(excessHour);

        });
于 2013-05-08T05:08:33.573 回答
0
$(document).ready(function () {
    $('.minutes').change(function () {
        if (parseInt($('.minutes').val()) > 59) {
            $('.hour').val($('.hour').val() + 1);
            $('.minutes').val(0);
        }

    });
});

http://jsfiddle.net/stackmanoz/5wcaQ/1/

于 2013-05-08T04:59:08.473 回答