JavaScript中getMonth()获取月份与实际不符的问题求助
解决getMonth()返回值比实际月份小1的问题
这是JavaScript Date API的设计特性,不是你操作出错了——getMonth()返回的是0起始的月份索引:1月对应0,2月对应1……8月自然就对应7了。
要得到实际的月份数字,只需要在获取到的结果上加1,同时别忘了给1-9月补零(和你处理分钟、秒的逻辑一致),修改后的代码如下:
function startTime() { const today = new Date(); let hour = today.getHours(); let minutes = today.getMinutes(); let seconds = today.getSeconds(); let day = today.getDate(); let month = today.getMonth() + 1; // 给索引值加1得到实际月份 let year = today.getFullYear(); hour = checkTime(hour); // 可选:给小时补零,比如9点显示为09点 minutes = checkTime(minutes); seconds = checkTime(seconds); month = checkTime(month); // 给月份补零 document.querySelector('.dateTime').innerHTML = hour + ":" + minutes + ":" + seconds; document.querySelector('.day').innerHTML = day + "/" + month + "/" + year; setTimeout(startTime, 1000); } setTimeout(startTime, 1000); function checkTime(i) { if (i < 10) { i = "0" + i }; return i; }
这样修改后,8月就会正确显示为08(如果不需要补零,可去掉month = checkTime(month)这行),和实际月份完全一致。
内容的提问来源于stack exchange,提问作者Learning Smart
相关产品推荐
相关产品推荐

