簡體   English   中英

如何從 2 個用戶輸入中獲取天數,然后將其與另一個用戶輸入相乘,即 JavaScript 中的金額?

[英]How do I get the number of days from 2 user inputs and then multiply it with another user input which is amount in JavaScript?

我正在嘗試創建一個簡單的精細計算器,我有兩個用戶輸入日期和一個用戶輸入數量。 我需要減去 2 個日期,然后將天數乘以罰款金額。 我瀏覽了一堆關於日期的視頻,但沒有一個接受過用戶輸入。 我是 javascript 的新手,所以我不知道為什么它不顯示我的結果。 有人可以告訴我我的代碼有什么問題嗎?

 if (isset($_POST['calcDiff'])) { $("#bdate").datetimepicker({ timepicker: false, format: 'ymd' }); $("#rdate").datetimepicker({ timepicker: false, format: 'ymd' }); function calcDiff() { var bdate = new Date($("#bdate").val()); var rdate = new Date($("#rdate").val()); var amount = $('#amount').val(); var timeDifference = rdate.getTime() - bdate.getTime(); var milliSecondsInOneSecond = 1000; var secondInOneHour = 3600; var hourInOneDay = 24; var daysDiff = timeDifference / (milliSecondsInOneSecond * secondInOneHour * hourInOneDay); var fine = daysDiff * amount.val(); alert(fine); } }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form name="finecalc" action="" method="post"> <p> Borrowed date <input type="date" name="bdate" id="bdate" required="required" value="<?php echo $bdate; ?>" /> </p> <p> Return date</b> <input type="date" name="rdate" id="rdate" required="required" value="<?php echo $rdate; ?>" /> <b> </p> <p>Enter fine amount per day</b> <input type="text" name="amount" size="10"><b> </p><button onclick="calcDiff()">Calculate Fine</button><p id="display"></p> </form>

var amount = $('#amount').val();
...
var fine = daysDiff * amount.val();

也許不需要使用amount.val()

var fine = daysDiff * amount;

另外,刪除此行中的逗號:

var daysDiff = timeDifference / (, milliSecondsInOneSecond * secondInOneHour * hourInOneDay);

首先,您需要計算 2 個日期與總天數之間的差異

const date1 = new Date('7/13/2010');
const date2 = new Date('12/15/2010');
const diffTime = Math.abs(date2 - date1);
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); // calculate number of days 
console.log(diffDays + " days");
var amount = $('#amount').val(); //store Amount value into amount variable

然后計算罰款: var fine = daysDiff * amount;

您可以從每個輸入中獲取值,然后實際上只需減去日期以獲得紀元差異,並使用該數字將其轉換為天數並乘以罰款。

我添加了一個 JS 來做到這一點。

 function calcDiff(){ const date1 = new Date(document.querySelector('#bdate').value); const date2 = new Date(document.querySelector('#rdate').value); const penalty = document.querySelector('input[name="amount"]').value; const diff_ms = date2 - date1; // ms -> s -> min -> h -> days const days = diff_ms / 1000 / 60 / 60 / 24; const amount_to_pay = days * penalty; console.log('$' + amount_to_pay); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form name="finecalc" action="" method="post"> <p> Borrowed date <input type="date" name="bdate" id="bdate" required="required" value="<?php echo $bdate; ?>" /> </p> <p> Return date</b> <input type="date" name="rdate" id="rdate" required="required" value="<?php echo $rdate; ?>" /> <b> </p> <p>Enter fine amount per day</b> <input type="text" name="amount" size="10"><b> </p><button type="button" onclick="calcDiff()">Calculate Fine</button><p id="display"></p> </form>

這就是最終為我工作的原因,感謝所有幫助過的人。

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="enterbooks.css" />
</head>
<body style="background: url(library.png); background-size: 100%;">
    <div class="content">
        <h1>Hey admin calulate you fines here!</h1>
        <script>
            function calcDiff() {

                const date1 = new Date(document.querySelector('#bdate').value);
                const date2 = new Date(document.querySelector('#rdate').value);
                const penalty = document.querySelector('input[name="amount"]').value;
                const diff_ms = date2 - date1;
                // ms -> s -> min -> h -> days
                const days = diff_ms / 1000 / 60 / 60 / 24;
                const amount_to_pay = days * penalty;

                alert(amount_to_pay);

            }
        </script>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

        <form name="finecalc" action="" method="post">
            <p>
                Borrowed date
                <input type="date" id="bdate" required="required" value="<?php echo $bdate; ?>" />
            </p>
            <p>
                Return date</b>
                <input type="date" id="rdate" required="required" value="<?php echo $rdate; ?>" /> <b>
            </p>
            <p>Enter fine amount per day</b>
                <input type="text" name="amount" size="10"><b>
            </p><button type="button" onclick="calcDiff()">Calculate Fine</button>
            <p id="display"></p>
        </form>
    </div>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM