如何在 JavaScript 中为当前日期添加天数

Moataz Farid 2023年1月30日 2020年11月24日
  1. 了解 JavaScript Date
  2. 在 JavaScript 中给 Date() 添加天数
  3. 使用 JavaScript 中的 prototypeDate() 添加天数
如何在 JavaScript 中为当前日期添加天数

本教程将介绍如何在 JavaScript 中为当前日期或自定义日期添加新的一天。首先介绍什么是 日期 以及 JavaScript “日期 “类中的不同方法。

了解 JavaScript Date

在 JavaScript 中,Date 类基本上是指从 1970 年 1 月 1 日午夜 UTC 开始过去的毫秒数。它与 UNIX epoch 不同,后者在计算机中用于记录日期和时间值。

要开始使用 Date 类,我们需要创建一个新的 Date 对象来处理,创建这个对象的方法有很多,我们可以在下面的例子中看到。

var myDate = new Date();
var myDateOne = new Date("August 19, 2020 23:15:30");
var myDateTwo = new Date("2020-08-17T03:24:00");
var myDateThree = new Date(2020, 07, 17);
var myDateFour = new Date(2020, 07, 17, 3, 24, 0);

console.log(myDate);
console.log(myDateOne);
console.log(myDateTwo);
console.log(myDateThree);
console.log(myDateFour);

当我们在不给任何参数的情况下调用 Date() 构造函数时,Date 对象将拥有当前的日期和时间;而当给定一个参数时,该对象将拥有代表该时间点的解析字符串。

如果我们像例子 new Date(2020, 07, 17) 那样给出适当的日期和时间成分值,索引应该从 0 开始,而不是 1。

输出:

Fri Nov 13 2020 19:16:58 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 23:15:30 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 03:24:00 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 00:00:00 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 03:24:00 GMT+0200 (Eastern European Standard Time)

我们经常使用 Data 类的许多方法,我们将在下一节解释其中的一些方法。

在 JavaScript 中给 Date() 添加天数

假设我们想在 JavaScript 中创建一个增加一定天数的函数。在这种情况下,我们可以使用 Date 类中名为 getDate() 的方法来实现,该方法根据当地时间返回所选日期的 1 到 31 之间的月份日期,并使用 setDate() 方法来设置该特定日期的月份日期。

例如,如果日期是 11/02/2020,增加一天就是 12/02/2020。如果是 31/03/2020,则应是 01/04/2020,因为唯一有效的范围是 [1, 31]

让我们看看下面的例子,在 Date 对象中添加天数。

function addDaysToDate(date, days){
    var res = new Date(date);
    res.setDate(res.getDate() + days);
    return res;
}


var tmpDate = new Date(2020 , 07 , 20); // Augest 20, 2020
console.log(addDaysToDate(tmpDate, 2));

输出:

Sat Aug 22 2020 00:00:00 GMT+0200 (Eastern European Standard Time)

如果我们有兴趣将这一天添加到今天,我们可以在上面的代码中用 new Date() 替换 new Date(date),或者我们可以直接将 new Date() 传递给函数。

var tmpDate = new Date(); // Today
console.log(addDaysToDate(tmpDate, 2)); // today + 2 

输出:

Sun Nov 15 2020 22:55:06 GMT+0200 (Eastern European Standard Time)

使用 JavaScript 中的 prototypeDate() 添加天数

如果我们想给 Date 类创建一个原型,只接受数字输入作为添加的天数,我们可以按照下面的例子来实现。

Date.prototype.addDays = function(noOfDays){
    var tmpDate = new Date(this.valueOf());
    tmpDate.setDate(tmpDate.getDate() + noOfDays);
    return tmpDate;
}

var myDate = new Date(); //today
console.log( myDate.addDays(2)); // today + 2 

输出:

Sun Nov 15 2020 22:59:06 GMT+0200 (Eastern European Standard Time)

相关文章 - JavaScript Date