[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.
https://gmqtops.com granite white ice the beauty of white ice granite.
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:
- Trước tiên các bạn cần chuyển chuỗi kí tự (string) sang đối tượng Date() trong JavaScript
- 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 !
Thanks bạn nhiều, mình đang cần cái này ^^
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
lỗi này xử lý thế nào vậy bạn?