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

サンプルコードは 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

これにより、分のテキストボックスの値が時間に変換されます。[ このコードは分のテキストボックスの値を変更しないことを覚えておいてください; ]
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
$(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 に答える