在我的javascript程序中,我正在計算出生年份。我創建了接受不同值的提示對話框,我正在顯示這些值,但用戶給出的月份值在第二行中顯示不正確。用戶已輸入8,並顯示10月。任何人都可以幫助我找出問題嗎?我應該如何從提示中計算出所有三個數值以計算出生年份?如何使用Date對象從提示中獲取月份名稱,然後計算下一個生日
代碼:
var today = new Date();
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var birth = 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 days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var dateLoc = document.getElementById("dateField").innerHTML = "Today is " + today;
var birthField = document.getElementById("birthField")
.innerHTML = "I was born on " + monthNames[birth.getMonth()] + ' ' + myDay + ',' + myYear + '.' +
'(' + myMonth + '/' + myDay + '/' + myYear + ')';
var secondsBetween = (endDate.getTime() - startDate.getTime())/1000
endDate = new Date(today.getFullYear() + 1, myMonth, myDay);
var nextBirth = document.getElementById("nextBirth").innerHTML = "I am" + endDate + "Years old, and will turn"+ +"in" ;
<p id="dateField"> </p>
<p id="birthField"> </p>
<p id="nextBirth"> </p>
輸出:
您使用'monthNames [birth.getMonth()]'顯示月份名稱,但'birth.getMonth()'與用戶輸入的月份沒有關係。 – nnnnnn
它是當前月份爲'new Date();'用實際日期創建一個日期對象。你需要類似'birth = new Date(myYear,myMonth,myDay)' – Eineki