我想知道如何在 Javascript 中获取特定一周的第一天和最后一天。
例如,如果我有 2016 年的第 14 周,那么第一天是 4 月 4 日(星期一),最后一天是 4 月 10 日(星期日)。
我发现的唯一一件事是将系统的当前日期作为Date,而不是特定的一周。
我想知道如何在 Javascript 中获取特定一周的第一天和最后一天。
例如,如果我有 2016 年的第 14 周,那么第一天是 4 月 4 日(星期一),最后一天是 4 月 10 日(星期日)。
我发现的唯一一件事是将系统的当前日期作为Date,而不是特定的一周。
我将留下两种方法来进行计算,而不需要外部库,只使用 JavaScript。每种方法都会返回不同的值。
方法一:日历周
此方法认为一年中的第一周从一年的第一天开始,无论具体是哪一天。
这是一个演示(我稍微简化了一周的第一天和最后一天的计算):
方法 2:ISO 周
此方法认为一年中的第一周从一年中的第一个星期一开始(这可能会留下一周中的一些孤儿日)。
这个想法和前面的方法类似,唯一的区别是我们首先计算一周中的哪一天是一年中的第一天,然后我们从那里进行调整,使计算的日期总是与星期一重合。
这是一个演示:
日期有其局限性,您始终可以创建自己的方法,但日期很棘手,因为该规则有几个例外。出于这个原因,使用像momentjs这样的库包括解决方案而不是问题。
我给你举个例子,(你必须用 F12 打开控制台才能看到结果)
**
**
// 我们将日期设置为大于 0 的值
// 我们表示月份的数字并减1
// 我们在星期一定位自己
// 一周的第一天
// 一周的最后一天
在oracle中可以得到如下
通过这种方式,您可以从您需要查询的周数和年份开始找到一周的第一天和最后一天,在这种情况下,32 是 2017 年的一周代码
我希望这段代码可以帮助几个人(回收我在这里找到的一些代码)。通过这种方式,我们得到了特定年份的自然周,第 1 周从所选年份的 1 月 1 日开始,到最近的星期日结束。