从 JavaScript 中的日期中减去小时数

从 JavaScript 中的日期中减去小时数

Subtract Hours from a Date in JavaScript

从日期中减去小时数:

  1. 使用该getHours()方法获取特定日期的小时数。
  2. 使用该setHours()方法设置日期的小时数。
  3. setHours方法将小时数作为参数并设置日期值。
索引.js
function subtractHours(numOfHours, date = new Date()) { date.setHours(date.getHours() - numOfHours); return date; } // 👇️ Subtract 1 hour from the current date const result = subtractHours(1); // 👇️ Subtract 2 hours from another date const date = new Date('2022-04-27T08:30:10.820'); // 👇️ Wed Apr 27 2022 06:30:10 console.log(subtractHours(2, date));

我们创建了一个可重用的函数,它接受小时数和一个Date
对象,并从日期中减去小时数。

如果没有Date向函数提供对象,则它使用当前日期。

getHours()
方法返回一个介于
0和之间的数字,
数字
23表示根据本地时间给定日期的小时数。

setHours()方法将表示小时数的

数字作为参数并设置日期值。

Date如果从日期中减去 X 小时会将我们推到前一天、前一个月或前一年,则JavaScript对象会自动负责调整月份、月份和年份。

索引.js
const date = new Date('2022-04-27T01:30:10.820'); date.setHours(date.getHours() - 3); console.log(date); // 👉️ Tue Apr 26 2022 22:30:10

从日期中减去3小时数会自动调整示例中的日期。

请注意,该setHours方法会改变Date 调用它的对象。如果您不想Date就地更改,请在调用该方法之前创建一个副本。
索引.js
function subtractHours(numOfHours, date = new Date()) { const dateCopy = new Date(date.getTime()); dateCopy.setHours(dateCopy.getHours() - numOfHours); return dateCopy; } const date = new Date('2022-04-27T08:30:10.820'); const result = subtractHours(4, date); console.log(result); // 👉️ Wed Apr 27 2022 04:30:10 console.log(date); // 👉️ Wed Apr 27 2022 08:30:10 (didn't change original)

getTime方法返回从

1970 年 1 月 1 日 00:00:00 到给定日期之间经过的毫秒数。

我们使用时间戳来创建对象的副本,因此我们不会在调用方法Date时就地改变它。setHours

Date当您必须在代码的其他地方使用原始对象时,复制日期非常有用。

一般来说,改变函数参数是一种不好的做法,因为将相同的参数多次传递给同一个函数会返回不同的结果。

发表评论