Cộng Trừ Ngày Tháng Trong JavaScript

Hướng dẫn cách cộng trừ ngày tháng trong JavaScript. Bạn sẽ học được cách sử dụng các toán tử số học và các hàm getDate(), getMonth() để cộng trừ ngày tháng trong JavaScript sau bài học này.

Logic cộng trừ ngày tháng trong JavaScript

Ví dụ chúng ta có một date instance chứa thông tin ngày tháng như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());// Fri, 08 Oct 2021 00:00:00 GMT

Chúng ta có thể thấy trong một date instance biểu diễn thời gian như trên được tạo bởi các đơn vị về thời gian như ngày(08), tháng(Oct), năm(2021), hay giờ phút giây v.v..

Lại nữa, thời gian ở trên cũng có thể chuyển thành mili giây, giống như sau đây:

Copy
let d = new Date('2021-10-08');console.log(d.getTime());// 1633651200000

Từ 2 cách biểu thị thông tin thời gian như trên, chúng ta có thể thấy rõ, sẽ có 2 phương pháp để có thể tiến hành cộng trừ ngày tháng trong JavaScript, đó chính là thay đổi mili giây đại diện cho thời gian, hoặc thay đổi từng đơn vị thời gian tạo nên thời gian đó.

Ví dụ, đối với phương pháp thay đổi mili giây đại diện cho thời gian, để trừ 2 ngày trong JavaScript so với thời gian ban đầu, do 2 ngày có tất cả 2day x 24h x 3600s x 1000ms = 172800000 mili giây nên chúng ta chỉ cần trừ số mili giây này từ số mili giây ban đầu như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());/*Chuyển date sang mili giây*/let milis = d.getTime();/*Trừ 172800000 mili giây (tương đương với trừ 2 ngày) từ thời gian ban đầu*/let new_milis= milis - 172800000;/*Và chuyển lại mili giây về date thông qua hàm new Date*/let d2 = new Date(new_milis);console.log(d2.toUTCString());

Và kết quả, 2 ngày sẽ bị trừ đi từ ngày ban đầu như sau:

Copy
Fri, 08 Oct 2021 00:00:00 GMTWed, 06 Oct 2021 00:00:00 GMT

Tuy nhiên thì với cách cộng trừ ngày tháng trong JavaScript này thì chúng ta bắt buộc phải tính toán kỹ lưỡng về mili giây cần phải cộng trừ vào mili giây đại diện của thời gian ban đầu. Do đó, thay vì cách tính toán thế này thì chúng ta nên sử dụng tới phương pháp cộng trừ ngày tháng trong JavaScript thông qua việc thay đổi từng đơn vị thời gian như thay đổi ngày, thay đổi tháng, thay đổi năm v.v.. mà Kiyoshi sẽ hướng dẫn sau đây.

Cộng ngày trong JavaScript

Để cộng ngày trong JavaScript, chúng ta thực thi tuần tự các xử lý sau đây:

  1. Sử dụng phương thức getDate() để lấy số ngày trong date instance ban đầu
  2. Tiến hành phép cộng để thay đổi số ngày vừa lấy tới giá trị mong muốn,
  3. Sửa số ngày trong date instance ban đầu thành số ngày thu được ở trên bằng phương thức setDate()

Ví dụ, chúng ta có thể cộng ngày trong JavaScript như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());//Lấy số ngày từ thời gian chỉ địnhlet day = d.getDate();//Cộng số ngày mong muốn, ví dụ chúng ta cộng thêm 2 ngàylet new_day = day + 2;//Sửa số ngày trong date instance ban đầu thành new_dayd.setDate(new_day);console.log(d.toUTCString());

Và kết quả:

Copy
Fri, 08 Oct 2021 00:00:00 GMTSun, 10 Oct 2021 00:00:00 GMT

Thực tế trong chương trình Javascript, chúng ta sẽ viết gọn lại tất cả các xử lý ở trên thành một dòng như sau:

Copy
let d = new Date('2021-10-08');// Cộng 2 ngày trong JavaScriptd.setDate(d.getDate() + 2);console.log(d.toUTCString());//Sun, 10 Oct 2021 00:00:00 GMT

Trừ ngày trong JavaScript

Để trừ ngày trong JavaScript, chúng ta cũng thực hiện tương tự các xử lý khi cộng ngày trong JavaScript ở trên.

  1. Sử dụng phương thức getDate() để lấy số ngày trong date instance ban đầu
  2. Tiến hành phép cộng để thay đổi số ngày vừa lấy tới giá trị mong muốn,
  3. Sửa số ngày trong date instance ban đầu thành số ngày thu được ở trên bằng phương thức setDate()

Ví dụ, chúng ta có thể trừ 2 ngày trong JavaScript như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());//Lấy số ngày từ thời gian chỉ địnhlet day = d.getDate();//Trừ số ngày mong muốn, ví dụ chúng ta trừ đi 2 ngày let new_day = day - 2;//Sửa số ngày trong date instance ban đầu thành new_dayd.setDate(new_day);console.log(d.toUTCString());

Và kết quả:

Copy
Fri, 08 Oct 2021 00:00:00 GMTWed, 06 Oct 2021 00:00:00 GMT

Thực tế trong chương trình Javascript, chúng ta sẽ viết gọn lại tất cả các xử lý ở trên thành một dòng như sau:

Copy
let d = new Date('2021-10-08');// Trừ 2 ngày trong JavaScriptd.setDate(d.getDate() - 2);console.log(d.toUTCString());//Sun, 10 Oct 2021 00:00:00 GMT

Cộng tháng trong JavaScript

Để cộng tháng trong JavaScript, chúng ta cũng làm hoàn toàn tương tự như với cộng ngày trong JavaScript. Điểm khác biệt duy nhất ở đây là chúng ta sử dụng hàm getMonth() và hàm setMonth() sử dụng để xử lý tháng trong JavaScript như sau:

  1. Sử dụng phương thức getMonth() để lấy số tháng trong date instance ban đầu
  2. Tiến hành phép cộng để thay đổi số tháng vừa lấy tới giá trị mong muốn,
  3. Sửa số tháng trong date instance ban đầu thành số tháng thu được ở trên bằng phương thức setMonth()

Ví dụ, chúng ta có thể cộng tháng trong JavaScript như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());//Lấy số tháng từ thời gian chỉ địnhlet month = d.getMonth();//Cộng số tháng mong muốn, ví dụ chúng ta cộng thêm 2 thánglet new_month = month + 2;//Sửa số tháng trong date instance ban đầu thành new_monthd.setMonth(new_month);console.log(d.toUTCString());

Và kết quả, 2 tháng sẽ được cộng thêm vào thời gian ban đầu như sau:

Copy
Fri, 08 Oct 2021 00:00:00 GMTWed, 08 Dec 2021 00:00:00 GMT

Thực tế trong chương trình Javascript, chúng ta sẽ viết gọn lại tất cả các xử lý ở trên thành một dòng như sau:

Copy
let d = new Date('2021-10-08');// Cộng thêm 2 tháng trong JavaScriptd.getMonth(d.getMonth() + 2);console.log(d.toUTCString());//Fri, 08 Oct 2021 00:00:00 GMT

Trừ tháng trong JavaScript

Để trừ tháng trong JavaScript, chúng ta cũng thực hiện tương tự các xử lý khi cộng tháng trong JavaScript ở trên.

  1. Sử dụng phương thức getMonth() để lấy số tháng trong date instance ban đầu
  2. Tiến hành phép trừ để thay đổi số tháng vừa lấy tới giá trị mong muốn,
  3. Sửa số tháng trong date instance ban đầu thành số tháng thu được ở trên bằng phương thức setMonth()

Ví dụ, chúng ta có thể trừ tháng trong JavaScript như sau:

Copy
let d = new Date('2021-10-08');console.log(d.toUTCString());//Lấy số tháng từ thời gian chỉ địnhlet month = d.getMonth();//Trừ số tháng mong muốn, ví dụ chúng ta trừ đi 2 thánglet new_month = month - 2;//Sửa số tháng trong date instance ban đầu thành new_monthd.setMonth(new_month);console.log(d.toUTCString());

Và kết quả, 2 tháng sẽ được trừ đi từ thời gian ban đầu như sau:

Copy
Fri, 08 Oct 2021 00:00:00 GMTSun, 08 Aug 2021 00:00:00 GMT

Thực tế trong chương trình Javascript, chúng ta sẽ viết gọn lại tất cả các xử lý ở trên thành một dòng như sau:

Copy
let d = new Date('2021-10-08');// Trừ 2 tháng trong JavaScriptd.getMonth(d.getMonth() - 2);console.log(d.toUTCString());//Fri, 08 Oct 2021 00:00:00 GMT

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách cộng trừ ngày tháng trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/javascript/javascript-co-ban-den-nang-cao/date-object-trong-javascript/cong-tru-ngay-thang-trong-javascript/

Từ khóa » Javascript Cộng