You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:24:15