i have 1 problem, i wanna compare two dates between date born and today, the condition is date born must be less than today date, it worked at first, but if i pick another date from datepicker which is less than today, its still pop up alert. And it not ok. Anyone know why this this happened?
function submitForm() {
var dateborn = document.getElementById('dateborn').value;
var today = document.getElementById('today').value;
if(dateborn != '')
{
if(dateborn > today)
{
swal("Oops", "Date born must less than date today", "error");
return false;
}
}
}
If I were you I can use the timestamp to compare 2 dates.
function submitForm() {
var dateborn = document.getElementById('dateborn').value;
var today = document.getElementById('today').value;
const time1 = new Date(dateborn).getTime();
const time2 = new Date(today).getTime(); // or new Date().getTime();
if(dateborn != '')
{
if(time1 > time2)
{
swal("Oops", "Date born must less than date today", "error");
return false;
}
}
Try this
function submitForm() {
var dateborn = document.getElementById('dateborn').value;
var today = document.getElementById('today').value;
if(dateborn != '')
{
if(Date(dateborn).getTime() > Date(today).getTime())
{
swal("Oops", "Date born must less than date today", "error");
return false;
}
}
}
As for your question why this happened. i think your date picker does not give the date in ISO format. if your value is formatted like: YYYY-MM-DD (from biggest to smallest) you can compare it as a string. You can see this from this fiddle i made: JSfiddle
Does your date picker look like this:
<input type="date" id="d2" onChange="change(this)"/>