I am trying to display days, hours, minutes, and seconds until next birthday. Birthday is calculated by prompt value. I have calculated seconds, minutes, hours and days. But I am getting wrong value e.g. "0". What's wrong in my code?
code:
<!DOCTYPE html>
<html>
<head>
<style>
p{
text-align: center;
font-family: monospace;
font-size: 20px;
}
</style>
<title>trail</title>
</head>
<body>
<h1 style="text-align: center; font-family: monospace;"> My age </h1>
<p id="dateField"> </p>
<p id="birthField"> </p>
<p id="nextBirth"> </p>
<script>
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var today = new Date();
var myMonth = prompt("What month were you born in?");
var myDay = prompt("What day were you born on?");
var myYear = prompt("What year were you born in?");
var birthday = new Date(myYear, myMonth, myDay);
var dateLoc = document.getElementById("dateField").innerHTML = "Today is " + today;
var birthField = document.getElementById("birthField")
.innerHTML = "I was born on " + monthNames[myMonth - 1] + ' ' + myDay + ',' + myYear + '.'
+ '(' + myMonth + '/' + myDay + '/' + myYear + ')';
var years = today.getFullYear() - birthday.getFullYear();
var seconds = Math.floor( (years/1000) % 60 );
var minutes = Math.floor( (years/1000/60) % 60 );
var hours = Math.floor( (years/(1000*60*60)) % 24 );
var days = Math.floor( years/(1000*60*60*24) );
var nextBirth = document.getElementById("nextBirth").innerHTML = "I am " + years + " Years old, and will turn " + (years + 1 ) + " in:" + "<br>" + days + " days," + hours + "hours," + minutes + "minutes," + seconds + "seconds";
</script>
</body>
</html>