Trying to add a number of days to an initial date when selected by a user.
So an Admin creates settings - the setting im trying to use is a set number of days to be added. The user selects a date on a form and this number of days is added.
My form code:
<div class="col-xl-4">
<p class="card-text">Invoice Date: *
<input id="pay_term" type="hidden" name="pay_term" value="<? echo str_replace("'","",INVOICE_PAYMENT_TERM)?>"></p>
<input id="invoice_date" type="date" name="invoice_date" onchange="getdate()" required></p>
</div>
so INVOICE_PAYMENT_TERM holds the settings for number of days in a php file as define('INVOICE_PAYMENT_TERM', '15'); // Invoice Payment Term (Days)
This shows fine - for example - the number 15
Then the javascript -
<script>
$(document).ready(function () {
$('#invoice_date').datepicker();
});
function getdate() {
var tt = document.getElementById('invoice_date').value;
var nod = document.getElementById('pay_term').value;
var date = new Date(tt);
var newdate = new Date(date);
newdate.setDate(newdate.getDate() + nod);
var dd = ('0' + newdate.getDate()).slice(-2);
var mm = ('0' + (newdate.getMonth()+1)).slice(-2);
var y = newdate.getFullYear();
var someFormattedDate = dd + '/' + mm + '/' + y;
document.getElementById('invoice_due_date').value = someFormattedDate;
}
</script>
if INVOICE_PAYMENT_TERM is set at 15 and i select the invoice date of 01/03/2023 - I would expect 16/03/2023 but instead get 23/06/2023
newdate.setDate(newdate.getDate() + nod);
If i change this line to newdate.setDate(newdate.getDate() + 15);
it works fine and i get the expected date - it seems to not work after i set '15' as the variable 'nod' (numberofdays)
Thankyou in advance.