首页 > 解决方案 > 用于返回周末的 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

标签: javascriptfunctiondateweekend

解决方案


这个功能会起作用。我在代码中添加注释

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')))


推荐阅读