Tính số ngày trong JavaScript

Hướng dẫn cách tính số ngày trong JavaScript. Bạn sẽ học được cách tính số ngày trong tháng JavaScript cũng như tính khoảng cách giữa 2 ngày trong JavaScript sau bài học này.

Tính số ngày trong tháng JavaScript

Trong javascript không tồn tại phương thức nào trực tiếp giúp chúng ta tính số ngày trong tháng javascript. Tuy nhiên bằng cách ứng dụng các phương thức có sẵn thì chúng ta hoàn toàn có thể tự tạo ra hàm tính số ngày trong tháng javascript.

Ý tưởng ở đây đó là, số ngày trong một tháng chính là ngày cuối cùng của tháng đó. Bằng cách lấy ngày cuối cùng của tháng, chúng ta có thể đơn giản tính ra số ngày trong tháng chỉ định.

Thế nên, chúng ta cần 2 xử lý, một là tạo date instance chứa thông tin ngày cuối cùng trong tháng, và 2 là dùng hàm getDate() trong đối tượng Date để lấy số ngày từ date instance đó.

Và chúng ta viết hàm tính số ngày trong tháng javascript như sau:


const

get_day_of_month =

(

year, month

) => {

return

new

Date

(year, month,

0

).getDate();

};


  • Ở trên chúng ta dùng hàm new Date với cách viết new Date(year, month, 0) để khai báo ngày cuối cùng trong tháng. Bạn có thể tham khảo thêm về hàm này tại bài Khai báo date trong JavaScript

Ví dụ cụ thể, chúng ta tính số ngày trong tháng 2 và tháng 3 bằng JavaScript như sau:

const

get_day_of_month =

(

year, month

) => {

return

new

Date

(year, month,

0

).getDate();

};



let

thang2 = get_day_of_month(

2021

,

2

);

let

thang3 = get_day_of_month(

2021

,

3

);

Tính khoảng cách giữa 2 ngày trong javascript

Để tính khoảng cách giữa 2 ngày trong javascript, chúng ta đơn giản chuyển 2 ngày chỉ định về mili giây để tìm hiệu số ngày giữa chúng là xong.

Để chuyển 2 ngày về mili giây, chúng ta sẽ sử dụng tới phương thức getTime mà Kiyoshi đã hướng dẫn trong bài .

Và chúng ta viết hàm tính khoảng cách giữa 2 ngày trong javascript như sau:


const

get_day_of_time =

(

d1, d2

) => {

let

ms1 = d1.getTime();

let

ms2 = d2.getTime();

return

Math

.ceil((ms2 - ms1) / (

24

*

60

*

60

*

1000

));

};


  • Ở trên chúng ta chia hiệu của 2 mili giây cho 24*60*60*1000 chính là tổng số mili giây có trong 1 ngày để tìm ra tổng số ngày giữa 2 ngày chỉ định. Và dùng hàm Math.ceil() để làm tròn số ngày tìm được.

Ví dụ cụ thể, nếu một thiên thần sinh vào ngày 8/10/2019, thì chúng ta có thể tính tổng số ngày mà thiên thần ấy đã đến với trái đất này như sau:

const

get_day_of_time =

(

d1, d2

) => {

let

ms1 = d1.getTime();

let

ms2 = d2.getTime();

return

Math

.ceil((ms2 - ms1) / (

24

*

60

*

60

*

1000

));

};



let

birthday =

new

Date

(

'2019-10-08'

);

console

.log(birthday.toUTCString());



let

today =

new

Date

();

console

.log(today.toUTCString());



let

time = get_day_of_time(birthday,today)

console

.log(time+

' day'

);


Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách tính số ngày 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.