简体   繁体   中英

How to convert user entered date string into JavaScript date format

I want to calculate age of the user when user entered their date of birth. I got user entered value via text field. But I got output as NaN. I think there is an error in converting string to date. This is my code.

 function printage() { var dob = document.getElementById("dob").value; var age; var past; var now; var a; past = dob.getDate(); a = Date.parse(past); now = Date.now(); age = now - past; var millisecond = age; var second = 1000; var minute = second * 60; var hour = minute * 60; var day = hour * 24; var year = day * 365; var years = Math.round(millisecond / (day * 365)); var message = "Age in years" + years; document.getElementById("demo").innerHTML = years; }
 <!DOCTYPE html> <html> <head> </head> <body> <label for="age">Enter your date of birth</label> <input type="text" id="dob" name="dob"> <button onclick="printage()" type="button">Age</button> <p id="demo"></p> </body> </html>

Use past=new Date(dob) instead of getDate()

 <html> <head> </head> <body> <label for="age">Enter your date of birth</label> <input type="text" id="dob" name="dob"> <button onclick="printage()" type="button">Age</button> <p id="demo"></p> <script> function printage() { var dob = document.getElementById("dob").value; var age; var past; var now; var a; past =new Date(dob); console.log(past) a = Date.parse(past); now = Date.now(); age = now - past; var millisecond = age; var second = 1000; var minute = second * 60; var hour = minute * 60; var day = hour * 24; var year = day * 365; var years = Math.round(millisecond / (day * 365)); var message = "Age in years" + years; document.getElementById("demo").innerHTML = years; } </script> </body> </html>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM