javascript - 用于返回周末的 JavaScript 函数
问题描述
我是 javascript 的新手,我试图在每次日期是周六/周日时创建一个函数,它将返回“周末”而不是当天......
当前函数 (i === 6) 返回每个月的第 6 天。
function weekend(i) {
if (i === 6 || i === 0) {
i = "weekend";
}
return i;
}
let d = new Date();
weekend(d.setDate(d.getDate() + 5));
let n = weekend(d.getDate());
let m = d.getMonth() + 1;
let o = d.getFullYear();
let dateOp = n + "/" + m + "/" + o;
dateOp;
console.log(dateOp); // output 24/1/2021
// expected output weekend/1/2021
固定代码([红色])
const weekend = d => d.getDay()%6==0 ? "weekend" : d.getDate();
// let d = new Date(); // uncomment when tested
let d = new Date(2021,0,19,15,0,0,0); // 19/01/2021 @ 15:00 - remove when tested
d.setDate(d.getDate() + 5); // 5 days from now
let n = weekend(d);
let m = d.getMonth() + 1;
let o = d.getFullYear();
let dateOp = n + "/" + m + "/" + o;
console.log(dateOp); // output weekend/1/2021
解决方案
这个功能会起作用。我在代码中添加注释
function getDateString (myDate) {
const year = myDate.getFullYear()
const month = myDate.getMonth() + 1
let date = myDate.getDate()
// 0 is sunday, 6 is saturday
// change weekend if is 0 or 6
if ([0, 6].includes(myDate.getDay())) date = 'weekend'
const str = `${date}/${month}/${year}`
return str
}
console.log(getDateString(new Date()))
console.log(getDateString(new Date('2021/01/17')))
推荐阅读
- azure - 创建 QnA 聊天机器人 Azure 时部署失败
- linux - 构建带有用于测试数据的卷的docker镜像(centos)(postgresql)
- python - POST 后反转 (NoReverseMatch)
- scala - 无法在 IntelliJ 中导入 spark mllib
- macos - 204 状态代码不适用于带有 HTTP 2.0 的 Safari 11.1
- javascript - 从浏览器下载图像 GDrive API
- julia - 使用 Julia 将 in() 与元组数组一起使用时出错
- express - 你使用 express.static('public') OR (path.join(__dirname, 'public')) 吗?
- r - R时间序列,日期未正确读取
- javascript - FullCalendar:过滤多种类型的事件