在 JavaScript 中从日期中减去小时数
从日期中减去小时数:
-
使用
getHours()
方法获取特定日期的小时数。 -
使用
setHours()
方法设置日期的小时数。 -
setHours
方法将小时作为参数并设置日期的值。
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()
方法将表示小时的数字作为参数并设置日期的值。
如果从日期中减去 X 小时会将我们推到前一天、前一个月或前一年,JavaScript Date 对象会自动负责调整月中的日期、月份和年份。
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 对象。 如果我们不想就地更改日期,请在调用该方法之前创建一个副本。
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 对象时,复制日期非常有用。
一般来说,改变函数参数是一种不好的做法,因为多次将相同的参数传递给同一个函数会返回不同的结果。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法