javascript - JavaScript 中的 getYear() 返回 118

标签 javascript date

<分区>

我需要计算最近一个周末之前的最后一个星期一的日期。在使用了我认为最常见的 Stack Overflow 建议后,我得到了以下代码:

const getDayOfTheWeek = () => {
  let date = new Date();
  let clonedDate = new Date(date.getTime());
  console.log(clonedDate);
  const dow = clonedDate.getDay();
  console.log(dow);
  const offset = dow+6;
  console.log(offset);
  const newDate = new Date(clonedDate.setDate(clonedDate.getDate() - offset));
    console.log(newDate);
  const newNewDate = new Date(newDate.getTime());
  console.log(newNewDate);
  const day = newNewDate.getDate();
  const month = newNewDate.getMonth();
  const year = newNewDate.getYear();

  console.log('the year is ',year, 'the month is ', month);
}
getDayOfTheWeek();

它返回的年份是 118,月份是 5,这不是我需要的那个星期一。另一方面,newNewDate 是最后一个星期一。我想知道是什么原因造成的。我知道有太多不需要的重新分配。请帮忙。

最佳答案

无论您做什么都是完美的,唯一的错误是您在使用 getMonth()getYear() 并且误解了它们。

date.getMonth() 为您提供 0-11 之间的月份。所以 5 实际上是 6 月

date.getYear() 此方法返回年份减去 1900,因此实际为 118+1900=2018,您可以使用 date.getFullYear()回归2018

此外,您不需要那么多步骤。

函数可以简单地用 newDate 停止,如下所示

const getDayOfTheWeek = () => {
  let date = new Date();
  let clonedDate = new Date(date.getTime());
  console.log(clonedDate);
  const dow = clonedDate.getDay();
  console.log(dow);
  const offset = dow+6;
  console.log(offset);
  const newDate = new Date(clonedDate.setDate(clonedDate.getDate() - offset));
    console.log(newDate);
  const day = newDate.getDate();
  const month = newDate.getMonth() + 1;
  const year = newDate.getFullYear();

  console.log('the year is ',year, 'the month is ', month);
}
getDayOfTheWeek();

这将给出“年份是 2018 月份是 6”

希望这对您有所帮助。

关于javascript - JavaScript 中的 getYear() 返回 118,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179163/

相关文章:

r - 在 R 中计算每个用户的连续天数

java - 安卓Java : Difference between current time and specific time in future is calculated wrong

javascript - Faker.js 带有选择的随机单词

javascript - $(document).ready 中必须声明或输入什么?

javascript - Pusher 是否允许非 ASCII (JSON) 格式的传输负载?

bash - 根据月份名称创建目录

javascript - 使用moment js计算两个日期之间时间出现的频率

javascript - 在一个菜单上指定功能效果的问题

javascript - 帕雷尼佐是什么意思?

Java从字符串中解析日期