[jQuery] So sánh 2 ngày bất kì

Chào các bạn,

Hôm nay tôi sẽ giới thiệu một cách để so sánh 2 ngày bất kì, cụ thể chúng ta xem thử trong 2 ngày đó ngày nào sẽ lớn hơn với sự hỗ trợ của các hàm trong JavaScript.

Tôi có 2 ngày như sau :

Ngày bắt đầu : 01/12/2011
Ngày kết thúc: 04/12/2011

Thuật toán như sau:

  1. Trước tiên các bạn cần chuyển chuỗi kí tự (string) sang đối tượng Date() trong JavaScript
  2. Dùng hàm getTime() để lấy số mili giây bắt đầu từ ngày 01/01/1970 để làm căn cứ so sánh giữa 2 ngày đó. Ngày nào có số mili giây nhỏ hơn sẽ nhỏ hơn ngày còn lại.

Thuật toán trên được minh họa với đoạn code dưới đây:

$(document).ready(function(){
var startDate = parseDate("01/12/2011").getTime();
var endDate = parseDate("04/12/2011").getTime();
if (startDate > endDate) {
alert("Ngày bắt đầu lớn hơn");
} else {
alert("Ngày kết thúc lớn hơn");
}
});
// Chuyển chuỗi kí tự (string) sang đối tượng Date()
function parseDate(str) {
var mdy = str.split('/');
return new Date(mdy[2], mdy[1], mdy[0]);
}

Thật ra đọc đoạn code trên các bạn có thể thấy không cần thiết phải dùng đến jQuery trong trường hợp này, chỉ cần dùng JavaScript là đã giải quyết xong vấn đề rồi. Tôi nghĩ cốt lõi là hướng giải quyết vấn đề ra sao, còn ngôn ngữ nào thì chưa hẳn quan trọng lắm. Chúc vui !

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like…

3 Responses

  1. soiqualang_chentreu says:

    Thanks bạn nhiều, mình đang cần cái này ^^

  2. Vaishali Verma says:

    Cái này vẫn sẽ có lỗi nha, có những ngày 31 và 1 liền kề ok, có những ngày 31 và 1 liền kề khác lại lỗi :v

  3. kiểm says:

    lỗi này xử lý thế nào vậy bạn?