如何在 JavaScript 中将星期添加到日期

如何在 JavaScript 中将星期添加到日期

在本文中,我们将学习如何轻松地将任意周数添加到 日期 JavaScript 中的对象。

1. 日期 setDate() 和 getDate() 方法

将周数添加到 日期 在 JavaScript 中:

  1. 使用 获取日期() 上的方法 日期 获取月份的日期 日期 .
  2. 添加结果 获取日期() 7 乘以要添加的周数。
  3. 调用 设置日期() 将此总和作为参数的方法。

例如:

 函数 addWeeks(日期,周){  
 date.setDate(date.getDate() + 7 * 周); 归期;  
 } // 2022 年 5 月 20 日  
 const date = new Date('2022-05-20T00:00:00.000Z'); const newDate = addWeeks(date, 1); // 2022 年 5 月 27 日  
 控制台.log(newDate); // 2022-05-27T00:00:00.000Z

我们的 添加天数() 函数需要一个 日期 对象和天数作为参数添加,并返回相同 日期 对象与新添加的天数。

日期 获取日期() 方法返回一个介于 1 和 31 之间的数字,表示特定日期的月份中的哪一天。

日期 设置日期() 方法更改月份中的日期 日期 反对作为参数传递的数字。

如果您指定的数字会更改 日期 , 设置日期() 自动更新 日期 反映这一点的信息。

 函数 addWeeks(日期,周){  
 date.setDate(date.getDate() + 7 * 周); 归期;  
 } // 2022 年 5 月 20 日  
 const date = new Date('2022-05-20T00:00:00.000Z'); const newDate = addWeeks(date, 3); // 2022 年 6 月 10 日  
 控制台.log(newDate); // 2022-06-10T00:00:00.000Z

加 3 周加 21 天(20 + 21 = 41 天),但 5 月只有 31 天,所以月份递增 1 这一天被设置为 10 (41 - 31)。

避免副作用

设置日期() 方法改变了 日期 它被调用的对象。这给我们带来了一个副作用 添加天数() 功能。避免修改传递的 日期 并创建一个纯函数,复制 日期 并打电话 设置日期() 在这个副本上,而不是在原件上。

 函数 addWeeks(日期,周){  
 常量 dateCopy = 新日期(日期); dateCopy.setDate(dateCopy.getDate() + 7 * 周); 返回日期复制;  
 } const date = new Date('2022-05-20T00:00:00.000Z'); const newDate = addWeeks(date, 3); 控制台.log(newDate); // 2022-06-10T00:00:00.000Z //原始未修改  
 控制台日志(日期); // 2022-05-20T00:00:00.000Z

不修改外部状态的函数(即纯函数)往往更容易预测和推理,因为它们总是为特定输入提供相同的输出。这使得限制代码中副作用的数量成为一种很好的做法。

2. date-fns addWeeks() 函数

或者,您可以使用纯 addWeeks() 从函数 日期-fns NPM 包可快速增加数周 日期 .它的工作原理类似于我们的 addWeeks() 功能。

 从“日期-fns”导入 { addWeeks }; const date = new Date('2022-05-20T00:00:00.000Z'); const newDate = addWeeks(date, 3); 控制台.log(newDate); // 2022-06-10T00:00:00.000Z //原始未修改  
 控制台日志(日期); // 2022-05-20T00:00:00.000Z

最初发表于 编码beautydev.com

JavaScript 所做的每一件疯狂的事

关于 JavaScript 的细微警告和鲜为人知的部分的迷人指南。

注册 并立即获得免费副本。

更多内容在 ** 纯英语.io** .注册我们的 ** 免费每周通讯** .跟着我们 ** 推特** , ** 领英** ** , ** YouTube** ** , 和 __不和谐 ** .** 对增长黑客感兴趣?查看 ** 电路** ** .**

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/30300/32271208

posted @ 2022-09-12 08:33  哈哈哈来了啊啊啊  阅读(126)  评论(0编辑  收藏  举报