So sánh ngày trong JavaScript – Cách so sánh ngày trong JS


Ngày là một trong những kiểu dữ liệu phổ biến nhất mà các nhà phát triển sử dụng khi tạo các ứng dụng trong thế giới thực.

Nhưng thông thường, các nhà phát triển gặp khó khăn với kiểu dữ liệu này và cuối cùng sử dụng các thư viện ngày tháng như Moment.js cho các tác vụ đơn giản không xứng đáng với kích thước gói lớn đi kèm với việc cài đặt toàn bộ gói.

Trong bài viết này, chúng ta sẽ tìm hiểu cách thực hiện so sánh ngày trong JavaScript. Nếu bạn cần mã nhanh chóng, đây là:

const compareDates = (d1, d2) => {
  let date1 = new Date(d1).getTime();
  let date2 = new Date(d2).getTime();

  if (date1 < date2) {
    console.log(`${d1} is less than ${d2}`);
  } else if (date1 > date2) {
    console.log(`${d1} is greater than ${d2}`);
  } else {
    console.log(`Both dates are equal`);
  }
};

compareDates("06/21/2022", "07/28/2021");
compareDates("01/01/2001", "01/01/2001");
compareDates("11/01/2021", "02/01/2022");

Điều này sẽ trở lại:

"06/21/2022 is greater than 07/28/2021"
"Both dates are equal"
"11/01/2021 is less than 02/01/2022"

Khi nghĩ đến việc so sánh ngày tháng trong JavaScript, chúng ta nghĩ đến việc sử dụng đối tượng Date (Date()) và, tất nhiên, nó hoạt động.

Đối tượng ngày tháng cho phép chúng ta thực hiện so sánh bằng cách sử dụng >, <, =hoặc >= toán tử so sánh, nhưng không phải là toán tử so sánh đẳng thức như ==, !=, ===!== (trừ khi chúng tôi đính kèm các phương thức ngày vào Đối tượng ngày).

Đọc thêm  JavaScript Date Now – Có thể hiểu được thực tế với JavaScript

Hãy bắt đầu bằng cách tìm hiểu cách thực hiện phép so sánh chỉ sử dụng đối tượng ngày tháng, sau đó chúng ta sẽ xem cách thực hiện phép so sánh đẳng thức bằng cách sử dụng đối tượng ngày tháng cùng với các phương thức ngày tháng.

Cách thực hiện so sánh ngày với đối tượng ngày trong JavaScript

Giả sử chúng ta muốn so sánh hai ngày trong JavaScript. Chúng ta có thể dễ dàng sử dụng Date Object (Date()) cách này:

let date1 = new Date();
let date2 = new Date();

if (date1 > date2) {
  console.log("Date 1 is greater than Date 2");
} else if (date1 < date2) {
  console.log("Date 1 is less than Date 2");
} else {
  console.log("Both Dates are same");
}

Ở trên sẽ trả về rằng cả hai ngày đều giống nhau vì chúng tôi đã không vượt qua các ngày khác nhau:

"Both Dates are same"

Bây giờ chúng ta hãy chuyển sang các giá trị ngày khác nhau:

let date1 = new Date();
let date2 = new Date("6/01/2022");

if (date1 > date2) {
  console.log("Date 1 is greater than Date 2");
} else if (date1 < date2) {
  console.log("Date 1 is less than Date 2");
} else {
  console.log("Both Dates are same");
}

Điều này bây giờ sẽ trả lại như sau:

"Date 1 is greater than Date 2"

May mắn thay, ở trên xử lý đẳng thức là tùy chọn cuối cùng khi hai điều kiện đầu tiên không thành công. Nhưng giả sử chúng ta cố gắng xử lý bình đẳng như điều kiện theo cách này:

let date1 = new Date();
let date2 = new Date();

if (date1 === date2) {
  console.log("Both Dates are same");
} else {
  console.log("Not the same");
}

Nó sẽ trả về như sau, đó là sai:

"Not the same"

Cách thực hiện so sánh đẳng thức với JavaScript

Để xử lý so sánh đẳng thức, chúng tôi sử dụng đối tượng ngày cùng với getTime() date phương thức trả về số mili giây. Nhưng nếu chúng ta muốn so sánh thông tin cụ thể như ngày, tháng, v.v., chúng ta có thể sử dụng các phương thức ngày khác như getDate(), getHours(), getDay(), getMonth()getYear().

let date1 = new Date();
let date2 = new Date();

if (date1.getTime() === date2.getTime()) {
  console.log("Both  are equal");
} else {
  console.log("Not equal");
}

Điều này sẽ trở lại:

"Both are equal"

Chúng ta có thể chuyển các ngày khác nhau vào đối tượng ngày để so sánh:

let date1 = new Date("12/01/2021");
let date2 = new Date("09/06/2022");

if (date1.getTime() === date2.getTime()) {
  console.log("Both  are equal");
} else {
  console.log("Not equal");
}

Theo dự kiến, điều này sẽ trở lại:

"Not equal"

Lưu ý: Với getTime() chúng ta có thể thực hiện tất cả các hình thức so sánh ngày bằng cách sử dụng tất cả các toán tử so sánh, đó là >, <, <=, >=, ==, !=, ===!==.

Cách thực hiện so sánh ngày cụ thể

Giả sử chúng ta muốn so sánh các giá trị ngày cụ thể như năm. Sau đó, chúng ta có thể sử dụng .getYear() phương pháp ngày theo cách này:

let date1 = new Date("06/21/2022").getYear();
let date2 = new Date("07/28/2021").getYear();

if (date1 < date2) {
  console.log("Date1 is less than Date2 in terms of year");
} else if (date1 > date2) {
  console.log("Date1 is greater than Date2 in terms of year");
} else {
  console.log(`Both years are equal`);
}

Phần kết luận

Trong bài viết này, bạn đã học cách so sánh ngày tháng trong JavaScript bằng cách sử dụng Đối tượng ngày tháng mà không phải cài đặt bất kỳ thư viện nào.

Đọc thêm  Hãy làm sáng tỏ sự nhầm lẫn xung quanh các phương thức slice(), splice(), & split() trong JavaScript

Mã hóa vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status