javascript - 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(哥伦比亚标准时间)
解决方案
new Date() 最初将使用今天的日期,即 2021 年 6 月 15 日。当您尝试将 Day 设置为 31 日时,它会返回 01,因为 6 月只有 30 天。
要获得预期的输出,您应该首先设置月份。
推荐阅读
- swift - 为 TableView 启用 3D 触摸预览
- c# - 异步主 c# 7.1 中的线程切换
- julia - Julia:附加到数组
- multithreading - 用于 cython 代码的并行 C 包装器
- spring-rabbit - Spring Boot RabbitMQ 空指针异常错误
- jekyll - 为覆盖整个网站的标签分配一个很棒的字体图标
- python - 满足条件,但程序没有跳出 while 循环
- kotlin - 在kotlin中println之前的双冒号是什么意思
- r - 获取变量以传递给R中的函数(ggplot2)
- javascript - 强制客户端使用未缓存的资源