1

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;
            }
        }

            
    }
4

3 Answers 3

1

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;
            }
        }
Sign up to request clarification or add additional context in comments.

Comments

0

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;
        }
    }

        
}

1 Comment

thanks for the solution, really appreciate it
0

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)"/>

2 Comments

thanks for the solution, really appreciate it, Well btw i just only have 1 date picker which is the dateborn, while today value i get it from hidden input.
@confused_cat If today is truly only for getting the current date.. Why not get it from javascript with new Date()?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.