我试图获取用户的输入并将其存储在一个变量中,该变量可用于与今天的日期进行比较。如果等于今天,它将输出一条消息,否则将仅输出数据。
<script>
let month = [];
let day = [];
let year = [];
let monthInput = document.getElementById("month");
let dayInput = document.getElementById("day");
let yearInput = document.getElementById("year");
let messageBox = document.getElementById("display");
function insert ( ) {
month.push( monthInput.value );
day.push( dayInput.value );
year.push( yearInput.value );
celebrate();
}
function celebrate() {
// Show output
messageBox.innerHTML = "";
let q = new Date();
let m = q.getMonth();
let d = q.getDay();
let date = new Date(m, d);
//compares dates
if( m == month && d == day ){
messageBox.innerHTML = `Happy Birthday!`;
}else{
console.log(date);
messageBox.innerHTML += `Your birthday is ${month}/${day}`;
}
}
</script>
我只有else语句的输出。
答案 0 :(得分:0)
请注意,getDay
返回星期几(5 =星期五),并且getMonth
是基于0的,因此May是4而不是5。
因此,如果要将月和日与用户输入的值进行比较,则应使用date.getMonth() + 1
作为月份,date.getDate()
作为日期。
如果要使用输入的值,只需使用value属性。例如document.getElementById("month").value
简而言之:
var d = new Date();
if (
Number(document.getElementById("month").value) === (d.getMonth() + 1) &&
Number(document.getElementById("day").value) === d.getDate()
) {}