在 JavaScript 中从日期中减去秒数
Subtract Seconds from a Date in JavaScript
从日期中减去秒数:
- 使用该
getSeconds()
方法获取特定日期的秒数。 - 使用该
setSeconds()
方法设置日期的秒数。 - 该
setSeconds
方法将秒作为参数并设置日期值。
索引.js
function subtractSeconds(numOfSeconds, date = new Date()) { date.setSeconds(date.getSeconds() - numOfSeconds); return date; } // 👇️ Subtract 10 seconds from current Date const result = subtractSeconds(10); // 👇️ Subtract 20 seconds from another date const date = new Date('2022-06-24T07:35:40.820'); // 👇️ Fri Jun 24 2022 07:35:20 console.log(subtractSeconds(20, date));
我们创建了一个可重用的函数,它接受秒数和一个Date
对象,然后从日期中减去秒数。
如果没有
Date
向函数提供对象,则它使用当前日期。getSeconds()
方法返回一个介于0
和之间的
数字59
,表示给定日期中的秒数。
setSeconds
()
将代表秒数的数字作为参数并设置日期值。
如果从日期中减去 X 秒更改了它们的值,则JavaScriptDate
对象会自动负责调整分钟、小时、天、月和年。
索引.js
const date = new Date('2022-06-24T00:00:40.820'); date.setSeconds(date.getSeconds() - 50); console.log(date); // 👉️ Thu Jun 23 2022 23:59:50
上面的示例显示了如何50
从日期中减去秒数来自动调整对象上的日期、小时、分钟和秒的
Date
值。
请注意,该
setSeconds
方法会改变Date
调用它的对象。如果您不想Date
就地更改,可以在调用该方法之前创建它的副本。索引.js
function subtractSeconds(numOfSeconds, date = new Date()) { const dateCopy = new Date(date.getTime()); dateCopy.setSeconds(dateCopy.getSeconds() - numOfSeconds); return dateCopy; } const date = new Date('2022-06-24T06:30:40.820'); const result = subtractSeconds(25, date); console.log(result); // 👉️ Fri Jun 24 2022 06:30:15 console.log(date); // 👉️ Fri Jun 24 2022 06:30:40 (didn't change original)
getTime方法返回从
1970 年 1 月 1 日 00:00:00 到给定日期之间经过的毫秒数。
我们使用时间戳来创建对象的副本,因此我们不会在调用方法
Date
时就地改变它。setSeconds
Date
当您必须在代码的其他地方使用原始对象时,复制日期非常有用。
一般来说,改变函数参数是一种不好的做法,因为将相同的参数多次传递给同一个函数会返回不同的结果。