如何在 JavaScript 中从日期中减去秒数
让我们学习如何轻松地从 a 中减去任意秒数 日期
JavaScript 中的对象。
1. 日期 setSeconds() 和 getSeconds() 方法
从 a 中减去秒 日期
:
- 调用
获取秒()
上的方法日期
获取秒数。 - 减去秒数。
- 将减法的结果传递给
setSeconds()
方法。
例如:
函数减秒(日期,秒){
date.setSeconds(date.getSeconds() - 秒); 归期;
} // 2022 年 7 月 10 日下午 5:35:40
const date = new Date('2022-07-10T17:35:40.000Z'); const newDate = subtractSeconds(date, 10); // 2022 年 7 月 10 日下午 5:35:30
控制台.log(newDate); // 2022-07-10T17:35:30.000Z
我们的 减秒()
函数需要一个 日期
对象和作为参数减去的秒数。它返回一个新的 日期
减去秒数的对象。
日期 获取秒() 方法返回一个介于 0
和 59
表示特定的秒数 日期
.
日期 setSeconds() 方法设置 a 的秒数 日期
到指定的号码。
如果我们减去的秒数会减少分、时、日、月或年 日期
目的, 设置小时()
自动更新 日期
反映这一点的信息。
函数减秒(日期,秒){
date.setSeconds(date.getSeconds() - 秒); 归期;
} // 2022 年 7 月 10 日下午 5:20:00
const date = new Date('2022-07-10T17:20:00.000Z'); 常量新日期 = 减秒(日期,130); // 2022 年 7 月 10 日下午 5:17:50
控制台.log(newDate); // 2022-07-10T17:17:50.000Z
在本例中,减少 日期
经过 130
减少分钟 3
并将秒数设置为 50
.
避免副作用
这 setSeconds()
方法改变了 日期
它被调用的对象。这给我们带来了一个副作用 减秒()
功能。为了避免修改传递的,并创建一个纯函数,复制 日期
并打电话 setSeconds()
在这个副本上,而不是在原件上。
函数减秒(日期,秒){
// 使用 Date() 构造函数进行复制
常量 dateCopy = 新日期(日期); dateCopy.setSeconds(date.getSeconds() - 秒); 返回日期复制;
} // 2022 年 7 月 10 日下午 5:35:40
const date = new Date('2022-07-10T17:35:40.000Z'); const newDate = subtractSeconds(date, 10); // 2022 年 7 月 10 日下午 5:35:30
控制台.log(newDate); // 2022-07-10T17:35:30.000Z //原始未修改
控制台日志(日期); // 2022-07-10T17:35:40.000Z
小费: 不修改外部状态的函数(即纯函数)往往更容易预测和推理,因为它们总是为特定输入提供相同的输出。这使得限制代码中副作用的数量成为一种很好的做法。
2. date-fns subSeconds() 函数
或者,我们可以使用 子秒()
从函数 日期-fns NPM 包快速从 日期
.它的工作原理类似于我们的纯 减秒()
功能。
从“日期-fns”导入{ subSeconds }; // 2022 年 7 月 10 日下午 5:35:40
const date = new Date('2022-07-10T17:35:40.000Z'); const newDate = subSeconds(date, 10); // 2022 年 7 月 10 日下午 5:35:30
控制台.log(newDate); // 2022-07-10T17:35:30.000Z //原始未修改
控制台日志(日期); // 2022-07-10T17:35:40.000Z
最初发表于 编码beautydev.com
JavaScript 所做的每一件疯狂的事
关于 JavaScript 的细微警告和鲜为人知的部分的迷人指南。
注册 并立即获得免费副本。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/11762/01110317
标签:10,秒数,JavaScript,35,日期,减去,2022,date From: https://www.cnblogs.com/amboke/p/16653044.html