Reputation: 53
I have this two date pickers
<label>Check-In Date : . </label>
<input id="date1" type="date" name="from" required min="<?php echo date('Y-m-d');?>">
<label>Check-Out Date : . </label>
<input id="date2" type="date" name="to" required onclick="setDate2();">
and a javascript
function setDate2() {
var date=$('#date1').val().split('-');
var day=date[2];
var month=date[1]-1;
var year=date[0];
var someDate = new Date(year, month, day);
someDate.setDate(someDate.getDate() + 1);
var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();
var someFormattedDate = y + '-'+ mm + '-'+ dd;
document.getElementById('date2').min = someFormattedDate;
alert(document.getElementById('date2').min)
}
this code works fine but, document.getElementById('date2').min = someFormattedDate;
doesn't seen to work or something? I'm getting the correct output but doesn't set the minimum value of date2
...
Upvotes: 0
Views: 94
Reputation: 10076
Your problem is in this line:
var someFormattedDate = y + '-' + mm + '-'+ dd;
You forgot that month or day could be one-digit number, so it should be like this:
var someFormattedDate = y + '-' + (mm<10?'0':'') + mm + '-' + (dd<10?'0':'') + dd;
Updated fiddle: https://jsfiddle.net/iStyx/6x1zb2fq/
Added: I'd like to recommend to use Moment.js library for date/time manipulations.
Upvotes: 1