Tính số ngày trong JavaScript | Laptrinhcanban.com

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:

/*Hàm tính số ngày trong tháng javascript*/
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); //28
let thang3 = get_day_of_month(2021, 3); //31

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:

/*Hàm tính khoảng cách giữa 2 ngày trong javascript*/
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());
//Tue, 08 Oct 2019 00:00:00 GMT

let today = new Date();
console.log(today.toUTCString());
//Wed, 22 Dec 2021 01:30:49 GMT

let time = get_day_of_time(birthday,today)
console.log(time+ ' day');
//807 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.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.