如何在 JavaScript 中為當前日期新增天數

Moataz Farid 2023年10月12日
  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