【问题标题】:How to get date of a weekday given the week and year如何在给定周和年的情况下获取工作日的日期
【发布时间】:2020-10-30 00:41:41
【问题描述】:

我想在给定周和年的情况下找到日期。 例如

         year = 2021;
         week = 2;
         day = Thursday;

我想返回 01-07-2021

为此,我首先尝试获取 2021 年第 2 周的第一个日期。将日期加 4 以获取日期。

   const startDateOfWeek2 = ??

我相信如果我能得到startDate,那么我可以计算出该周的任何工作日。有没有办法可以在这里使用moment

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    使用moment框架,您可以使用week()year()函数,根据weeknumberyear获取日期,如下所示。

    const year = 2021;
    const weekNumber = 2;
    
    const weekDay = moment().year(year).week(weekNumber).day("Wednesday");
    console.log(weekDay.format("YYYY-MM-DD"));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

    【讨论】:

    • W - 谢谢,我正在尝试类似的东西。但是,日期总是减 1。例如,它返回 01-08-2020(星期五)。我想这与从 0-6 Vs 1-7 数天数有关吗?我也在第 3 周尝试了这个,并得到了 01-15-2020,而不是 01-14-2020。知道为什么吗?
    • 我已经更新了我的答案。需要从年->日放(保持顺序)。如果使用day()再使用week()day()函数将被保留。
    • 谢谢!我不明白顺序是如何播放的。我使用了日->周->年,想从最小的单位开始。年->周->日工作是否有原因?
    • 使用week()时,会保留较低的funcday()。所以不要使用day -> week -> year,而是使用year->week->day。想一想,先决定年,然后是周,然后是日。从上到下。
    • 非常感谢您的解释。我花了很多时间没有考虑顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多