【问题标题】:start week day from sunday - javascript从星期日开始工作日 - javascript
【发布时间】:2023-01-12 18:13:50
【问题描述】:

我想通过提供特定周的天数来检索日期

例如

当我说

day: 1

它应该为我提供:

2023-01-15

到目前为止我尝试过的是:

function calculatedDate (day){

    let date = new Date();
    let dayAtDate = date.getDay();
    let dayDiff = day - dayAtDate;
    
    if(dayDiff < 0){
        dayDiff = 7 + dayDiff;
    }

    let desiredDate = date.setDate(date.getDate() + dayDiff);

    return new Date(desiredDate);
}

console.log(calculatedDate(1));

现在上面代码的问题是它将day: 1 视为星期一,但我希望day: 1 在这里是星期日。

任何人都可以在这里以最好的方式帮助我吗?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    仅在提供的日期 -1 怎么样?那应该解决它:

    function calculatedDate (day){
    
        let date = new Date();
        let dayAtDate = date.getDay();
        day = day - 1;
        let dayDiff = day - dayAtDate;
        
        if(dayDiff < 0){
            dayDiff = 7 + dayDiff;
        }
    
        let desiredDate = date.setDate(date.getDate() + dayDiff);
    
        return new Date(desiredDate);
    }
    
    console.log(calculatedDate(1));

    您可能想要对输入参数 day 添加一些验证,确保它是一个数字且大于或等于 1。

    【讨论】:

      【解决方案2】:

      当前日期将为 0,通过进行以下更改来说明这一点。

      if(dayDiff < 0){
          dayDiff = 6 + dayDiff;
      }
      

      【讨论】:

        【解决方案3】:

        周日是 0,周一是 1:

        function calculatedDate (day) {
            let date = new Date();
            let dayAtDate = date.getDay();
            let dayDiff = day - (dayAtDate + 1); // change here
            if (dayDiff < 0) {
                dayDiff = 7 + dayDiff;
            }
            let desiredDate = date.setDate(date.getDate() + dayDiff);
            return new Date(desiredDate);
        }
        console.log(calculatedDate(1));

        【讨论】:

        • 投反对票的人,请留言。
        猜你喜欢
        • 2022-12-11
        • 2020-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-03
        • 2018-02-05
        • 2017-07-19
        • 1970-01-01
        相关资源
        最近更新 更多