首页 > 解决方案 > getDay() 本月最后一天的意外输出

问题描述

我有一个脚本,它给了我星期几,当我输入从 1 到 30 的日子没有问题,但是当我输入 31 时,脚本返回同月的第一天。

function myFunction() {
 let numDayOfMonth = 31;
 const arrayDayWeek = ['Su','Mo','Tu','We','Th','Fr','Sa'];
 let initialDate = new Date();
 initialDate.setDate(numDayOfMonth);
 initialDate.setMonth(4);
 const numDayOfWeek = initialDate.getDay();
 console.log(initialDate);
 const nameDayOfWeek = arrayDayWeek[numDayOfWeek];
 return nameDayOfWeek;
}

电流输出

2021 年 5 月 1 日星期六 20:40:48 GMT-0500(哥伦比亚标准时间)

预期产出

莫 2021 年 5 月 31 日 20:40:48 GMT-0500(哥伦比亚标准时间)

标签: javascript

解决方案


new Date() 最初将使用今天的日期,即 2021 年 6 月 15 日。当您尝试将 Day 设置为 31 日时,它会返回 01,因为 6 月只有 30 天。

要获得预期的输出,您应该首先设置月份。


推荐阅读