在 JavaScript 中将小时添加到日期

在 JavaScript 中向日期添加小时数

Add Hours to a Date in JavaScript

在 JavaScript 中向日期添加小时数:

  1. 使用该getTime()方法获取自 Unix 纪元以来的毫秒数。
  2. 使用该setTime()方法,将调用结果getTime加上转换为毫秒的小时数传递给它。
索引.js
function addHours(numOfHours, date = new Date()) { date.setTime(date.getTime() + numOfHours * 60 * 60 * 1000); return date; } // 👇️ Add 1 hour to current date const result = addHours(1); // 👇️ Add 2 hours to another date const date = new Date('2022-03-14T09:25:30.820'); // 👇️ Mon Mar 14 2022 11:25:30 console.log(addHours(2, date));

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

Date如果未提供对象,该函数将使用当前日期。

getTime方法返回从

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

我们将小时数乘以,60 * 60 * 1000因为我们需要在将值传递给
setTime
方法时将其转换为毫秒。

setTime()方法采用一个数字来表示自 1970 年 1 月 1 日以来的毫秒数,并将值设置为日期。

这种方法会自动处理添加 X 小时将我们推到第二天、一个月或一年的场景。

索引.js
const date = new Date('2022-03-14T23:25:30.820'); const numOfHours = 10; date.setTime(date.getTime() + numOfHours * 60 * 60 * 1000); // 👇️ Tue Mar 15 2022 09:25:30 console.log(date);

向日期添加10小时数成功地将月份中的某天更改为
15th.

setTime方法改变了Date它被调用的对象。如果您不想Date就地更改,请在调用该方法之前创建一个副本。
索引.js
function addHours(numOfHours, date = new Date()) { const dateCopy = new Date(date.getTime()); dateCopy.setTime(dateCopy.getTime() + numOfHours * 60 * 60 * 1000); return dateCopy; } // 👇️ Add 2 hours to another date const date = new Date('2022-03-14T09:25:30.820'); const result = addHours(2, date); console.log(result); // 👉️ Mon Mar 14 2022 11:25:30 console.log(date); // 👉️ Mon Mar 14 2022 09:25:30 (didn't change original)

我们使用该getTime方法获取从 1970 年 1 月 1 日 00:00:00 到给定日期之间经过的毫秒数。

我们将时间戳传递给Date()构造函数以创建对象的副本,因此我们不会在调用方法Date时就地改变它。setTime

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

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

发表评论