So sánh trong reactjs
Boolean là một kiểu dữ liệu dạng bit, chỉ có thể lưu trữ hai giá trị True hoặc False. Với đặt tính của Boolean nó thường được sử dụng để làm kiểu dữ liệu cho thuộc tính chỉ lưu trữ hai giá trị ví dụ Đúng/Sai, Tắt/Mở,… Boolean có thể được sử dụng để trả về “câu trả lời” đúng hoặc sai của một biểu thức so sánh. Ví dụ: Boolean(19 > 18). Khi kiểm tra một biến bằng biểu thức Boolean, kết quả nhận được là True khi biến đó có chứa giá trị thật sự và nhận về False khi biến đó không chứa giá trị. Ví dụ: var b1 = 100 var x = ""; Các phép so sánh trong JavascriptCác phép so sánh được gọi là toán tử. Biểu thức so sánh sẽ đưa ra một kết quả nhất định, có giá trị là Boolean. Các giá trị boolean này có thể được dùng trong các hàm như if, switch,.. Một số phép so sánh phổ biến tron Javascript như sau:
Ví dụ: if (she < 18) film = "Em chưa 18 !"; Toán tử logic trong JavascriptCác toán tử logic được xem là những toán tử suy xét điều kiện. Ví dụ bạn muốn xét hai trường hợp, và chỉ cần đáp ứng được 1 trong hai thì khối lệnh sẽ thực hiện, bạn cần toán tử logic trong trường hợp này. Khi kết hợp toán tử này kết quả trả về cũng là một giá trị boolean. Javascript có một số toán tử logic sau.
Sử dụng hàm điều kiện trong JavascriptCác kết quả so sánh khi sử dụng phép so sánh hay toán tử logic đều trả về giá trị boolean. Giá trị này được sử dụng để đưa ra một lựa chọn cụ thể. Để thực hiện được điều này các lập trình viên sử dụng một hàm được gọi là hàm điều kiện. Hàm điều kiện trong Javascript có cú pháp: Biến = (Biểu thức điều kiện) ? Giá trị true:Giá trị false. Trong đó biến sẽ lưu giá trị trả về sau khi lựa chọn. biểu thức điều kiện là bao gồm việc sử dụng phép so sánh hay toán tử logic. Giá trị true là giá trị sẽ được trả về nếu biểu thức điều kiện trả về giá trị true, hoặc Giá trị false sẽ được trả về nếu biểu thức điều kiện trả về false. Ví dụ: var dieu_kien = (age < 18) ? "Chưa đủ":"Đủ rồi";. Trong bài sau mình sẽ giới thiệu đến bạn Điều khiển và lựu chọn trong JavaScript 1/29/2009 7:14:06 PMPhan Thất Thọ · Phan Thất Thọ 19:14 29/01/2009 Ai đó có thể đề xuất một cách để so sánh các giá trị của hai ngày lớn hơn, nhỏ hơn và không trong quá khứ bằng cách sử dụng JavaScript không? Các giá trị sẽ đến từ các hộp văn bản.
1577 hữu ích 5 bình luận 1.6m xem chia sẻ answer Võ Ngọc Quỳnh · Võ Ngọc Quỳnh 19:20 29/01/2009 Các đối tượng Date sẽ làm những gì bạn muốn - xây dựng một cho mỗi ngày, sau đó so sánh chúng bằng cách sử dụng >, <, <=hoặc >=. Các ==, !=, ===, và !==các nhà khai thác yêu cầu bạn phải sử dụng date.getTime()như trong var d1 = new Date(); var d2 = new Date(d1); var same = d1.getTime() === d2.getTime(); var notSame = d1.getTime() !== d2.getTime();để rõ ràng chỉ cần kiểm tra sự bình đẳng trực tiếp với các đối tượng dữ liệu sẽ không hoạt động var d1 = new Date(); var d2 = new Date(d1); console.log(d1 == d2); // prints false (wrong!) console.log(d1 === d2); // prints false (wrong!) console.log(d1 != d2); // prints true (wrong!) console.log(d1 !== d2); // prints true (wrong!) console.log(d1.getTime() === d2.getTime()); // prints true (correct)Tuy nhiên, tôi khuyên bạn nên sử dụng trình đơn thả xuống hoặc một số hình thức nhập ngày bị ràng buộc tương tự thay vì hộp văn bản, vì sợ rằng bạn sẽ thấy mình trong địa ngục xác thực đầu vào. 1807 hữu ích 5 bình luận chia sẻ answer Vũ Lan Hương · Vũ Lan Hương 00:18 31/01/2009 Cách dễ nhất để so sánh ngày trong javascript là trước tiên chuyển đổi nó thành đối tượng Ngày và sau đó so sánh các đối tượng ngày này. Dưới đây bạn tìm thấy một đối tượng có ba chức năng:
. // Source: http://stackoverflow.com/questions/497790 var dates = { convert:function(d) { // Converts the date in d to a date-object. The input can be: // a date object: returned without modification // an array : Interpreted as [year,month,day]. NOTE: month is 0-11. // a number : Interpreted as number of milliseconds // since 1 Jan 1970 (a timestamp) // a string : Any format supported by the javascript engine, like // "YYYY/MM/DD", "MM/DD/YYYY", "Jan 31 2009" etc. // an object : Interpreted as an object with year, month and date // attributes. **NOTE** month is 0-11. return ( d.constructor === Date ? d : d.constructor === Array ? new Date(d[0],d[1],d[2]) : d.constructor === Number ? new Date(d) : d.constructor === String ? new Date(d) : typeof d === "object" ? new Date(d.year,d.month,d.date) : NaN ); }, compare:function(a,b) { // Compare two dates (could be of any type supported by the convert // function above) and returns: // -1 : if a < b // 0 : if a = b // 1 : if a > b // NaN : if a or b is an illegal date // NOTE: The code inside isFinite does an assignment (=). return ( isFinite(a=this.convert(a).valueOf()) && isFinite(b=this.convert(b).valueOf()) ? (a>b)-(a<b) : NaN ); }, inRange:function(d,start,end) { // Checks if date in d is between dates in start and end. // Returns a boolean or NaN: // true : if d is between start and end (inclusive) // false : if d is before start or after end // NaN : if one or more of the dates is illegal. // NOTE: The code inside isFinite does an assignment (=). return ( isFinite(d=this.convert(d).valueOf()) && isFinite(start=this.convert(start).valueOf()) && isFinite(end=this.convert(end).valueOf()) ? start <= d && d <= end : NaN ); } }387 hữu ích 3 bình luận chia sẻ answer Trần Mộng Giác · Trần Mộng Giác 12:21 23/05/2013 So sánh Hi vọng điêu nay co ich! 243 hữu ích 5 bình luận chia sẻ answer Tạ Nam Hải · Tạ Nam Hải 16:04 31/01/2013 Các toán tử quan hệ < <= > >=có thể được sử dụng để so sánh ngày JavaScript: var d1 = new Date(2013, 0, 1); var d2 = new Date(2013, 0, 2); d1 < d2; // true d1 <= d2; // true d1 > d2; // false d1 >= d2; // falseTuy nhiên, các toán tử đẳng thức == != === !==không thể được sử dụng để so sánh (giá trị của) ngày vì :
Bạn có thể so sánh giá trị của ngày cho sự bằng nhau bằng bất kỳ phương pháp nào sau đây: var d1 = new Date(2013, 0, 1); var d2 = new Date(2013, 0, 1); /* * note: d1 == d2 returns false as described above */ d1.getTime() == d2.getTime(); // true d1.valueOf() == d2.valueOf(); // true Number(d1) == Number(d2); // true +d1 == +d2; // trueCả hai Date.getTime()và Date.valueOf()trả về số mili giây kể từ ngày 1 tháng 1 năm 1970, 00:00 UTC. Cả hai Numberhàm và toán tử đơn nguyên +gọi các valueOf()phương thức đằng sau hậu trường. 134 hữu ích 3 bình luận chia sẻ answer Đỗ Bích Thu · Đỗ Bích Thu 00:48 01/11/2011 Cho đến nay, phương pháp đơn giản nhất là trừ đi một ngày khác và so sánh kết quả. var oDateOne = new Date(); var oDateTwo = new Date(); alert(oDateOne - oDateTwo === 0); alert(oDateOne - oDateTwo < 0); alert(oDateOne - oDateTwo > 0); 70 hữu ích 0 bình luận chia sẻ answer Phạm Trường Chinh · Phạm Trường Chinh 09:59 11/07/2017 So sánh số ngày trong JavaScript là khá dễ dàng ... Javascript đã được xây dựng trong hệ thống so sánh cho ngày mà làm cho nó dễ dàng như vậy để làm việc so sánh ... Chỉ cần làm theo các bước sau để so sánh giá trị 2 ngày, ví dụ: bạn có 2 đầu vào, mỗi đầu vào có giá trị Ngày Stringvà bạn so sánh chúng ... 1. bạn có 2 giá trị chuỗi bạn nhận được từ một đầu vào và bạn muốn so sánh chúng, chúng như dưới đây: var date1 = '01/12/2018'; var date2 = '12/12/2018';2. Chúng cần Date Objectđược so sánh như các giá trị ngày, vì vậy chỉ cần chuyển đổi chúng thành ngày, bằng cách sử dụng new Date(), tôi chỉ cần gán lại chúng để đơn giản giải thích, nhưng bạn có thể làm điều đó theo cách bạn muốn: date1 = new Date(date1); date2 = new Date(date2);3. Bây giờ chỉ cần so sánh chúng, sử dụng> < >= <= date1 > date2; //false date1 < date2; //true date1 >= date2; //false date1 <= date2; //true51 hữu ích 4 bình luận chia sẻ answer Hoàng Phương Mai · Hoàng Phương Mai 15:38 27/09/2013 Chỉ so sánh ngày (bỏ qua thành phần thời gian): Date.prototype.sameDay = function(d) { return this.getFullYear() === d.getFullYear() && this.getDate() === d.getDate() && this.getMonth() === d.getMonth(); }Sử dụng: if(date1.sameDay(date2)) { // highlight day on calendar or something else clever }32 hữu ích 2 bình luận chia sẻ answer Hồ Vương Việt · Hồ Vương Việt 19:19 29/01/2009 định dạng gì Nếu bạn xây dựng một đối tượng Ngày Javascript , bạn chỉ có thể trừ chúng để có chênh lệch mili giây (chỉnh sửa: hoặc chỉ so sánh chúng): js>t1 = new Date() Thu Jan 29 2009 14:19:28 GMT-0500 (Eastern Standard Time) js>t2 = new Date() Thu Jan 29 2009 14:19:31 GMT-0500 (Eastern Standard Time) js>t2-t1 2672 js>t3 = new Date('2009 Jan 1') Thu Jan 01 2009 00:00:00 GMT-0500 (Eastern Standard Time) js>t1-t3 2470768442 js>t1>t3 true28 hữu ích 5 bình luận chia sẻ answer Phạm Duy An · Phạm Duy An 10:49 09/08/2012 bạn sử dụng mã này, var firstValue = "2012-05-12".split('-'); var secondValue = "2014-07-12".split('-'); var firstDate=new Date(); firstDate.setFullYear(firstValue[0],(firstValue[1] - 1 ),firstValue[2]); var secondDate=new Date(); secondDate.setFullYear(secondValue[0],(secondValue[1] - 1 ),secondValue[2]); if (firstDate > secondDate) { alert("First Date is greater than Second Date"); } else { alert("Second Date is greater than First Date"); }Và cũng kiểm tra liên kết này http://www.w3schools.com/js/js_obj_date.asp 15 hữu ích 2 bình luận chia sẻ answer Huỳnh Lâm Tuyền · Huỳnh Lâm Tuyền 21:06 02/08/2013 CÂU TRẢ LỜI NGẮN Đây là một hàm trả về {boolean} nếu hoạt động từ dateTime> đến dateTime Demo var from = '08/19/2013 00:00' var to = '08/12/2013 00:00 ' function isFromBiggerThanTo(dtmfrom, dtmto){ return new Date(dtmfrom).getTime() >= new Date(dtmto).getTime() ; } console.log(isFromBiggerThanTo(from, to)); //trueGiải trình jsFiddle var date_one = '2013-07-29 01:50:00', date_two = '2013-07-29 02:50:00'; //getTime() returns the number of milliseconds since 01.01.1970. var timeStamp_date_one = new Date(date_one).getTime() ; //1375077000000 console.log(typeof timeStamp_date_one);//number var timeStamp_date_two = new Date(date_two).getTime() ;//1375080600000 console.log(typeof timeStamp_date_two);//numbervì hiện tại bạn có cả datetime theo kiểu số, bạn có thể so sánh chúng với bất kỳ hoạt động so sánh nào (>, <, = ,! =, == ,! ==,> = VÀ <=) Sau đó nếu bạn đã quen với C#Chuỗi định dạng ngày và giờ tùy chỉnh, thư viện này sẽ thực hiện chính xác điều đó và giúp bạn định dạng dtmFRM ngày và giờ của bạn cho dù bạn đang chuyển qua chuỗi thời gian ngày hoặc định dạng unix Sử dụng var myDateTime = new dtmFRM(); alert(myDateTime.ToString(1375077000000, "MM/dd/yyyy hh:mm:ss ampm")); //07/29/2013 01:50:00 AM alert(myDateTime.ToString(1375077000000,"the year is yyyy and the day is dddd")); //this year is 2013 and the day is Monday alert(myDateTime.ToString('1/21/2014', "this month is MMMM and the day is dd")); //this month is january and the day is 21BẢN GIỚI THIỆU tất cả những gì bạn phải làm là chuyển bất kỳ định dạng nào được định dạng trong jstệp thư viện 14 hữu ích 2 bình luận chia sẻ answer Phạm Kim Xuân · Phạm Kim Xuân 03:36 20/07/2009 function datesEqual(a, b) { return (!(a>b || b>a)) } 13 hữu ích 3 bình luận chia sẻ answer Bùi Trọng An · Bùi Trọng An 19:17 29/01/2009 var date = new Date(); // will give you todays date. // following calls, will let you set new dates. setDate() setFullYear() setHours() setMilliseconds() setMinutes() setMonth() setSeconds() setTime() var yesterday = new Date(); yesterday.setDate(...date info here); if(date>yesterday) // will compare dates 12 hữu ích 0 bình luận chia sẻ answer Dương Hoàng Khánh · Dương Hoàng Khánh 15:41 26/03/2014 Chỉ cần thêm một khả năng khác vào nhiều tùy chọn hiện có, bạn có thể thử: if (date1.valueOf()==date2.valueOf()) ........ có vẻ như làm việc cho tôi. Tất nhiên bạn phải đảm bảo rằng cả hai ngày không được xác định ... if ((date1?date1.valueOf():0)==(date2?date2.valueOf():0) .....Bằng cách này, chúng tôi có thể đảm bảo rằng một so sánh tích cực được thực hiện nếu cả hai cũng không được xác định hoặc ... if ((date1?date1.valueOf():0)==(date2?date2.valueOf():-1) ........ Nếu bạn thích chúng không bằng nhau. 11 hữu ích 0 bình luận chia sẻ answer Hoàng Kiến Ðức · Hoàng Kiến Ðức 17:10 14/03/2017 Lưu ý - Chỉ so sánh Phần ngày: Khi chúng ta so sánh hai ngày trong javascript. Phải mất hàng giờ, phút và giây cũng được xem xét .. Vì vậy, nếu chúng ta chỉ cần so sánh ngày, đây là cách tiếp cận: var date1= new Date("01/01/2014").setHours(0,0,0,0); var date2= new Date("01/01/2014").setHours(0,0,0,0);Bây giờ: if date1.valueOf()> date2.valueOf()sẽ làm việc như một lá bùa. 11 hữu ích 0 bình luận chia sẻ answer Bùi Xuân Bích · Bùi Xuân Bích 05:53 05/07/2016 Qua Moment.js Jsfiddle: http://jsfiddle.net/guhokemk/1/ function compare(dateTimeA, dateTimeB) { var momentA = moment(dateTimeA,"DD/MM/YYYY"); var momentB = moment(dateTimeB,"DD/MM/YYYY"); if (momentA > momentB) return 1; else if (momentA < momentB) return -1; else return 0; } alert(compare("11/07/2015", "10/07/2015"));Phương thức trả về 1 nếu dateTimeAlớn hơndateTimeB Phương thức trả về 0 nếu dateTimeAbằngdateTimeB Phương thức trả về -1 nếu dateTimeAnhỏ hơndateTimeB 10 hữu ích 3 bình luận chia sẻ answer Tạ Thanh Ngọc · Tạ Thanh Ngọc 17:00 31/08/2016 Để so sánh hai ngày, chúng tôi có thể sử dụng thư viện JavaScript date.js có thể tìm thấy tại: https://code.google.com.vn/archive/p/datejs/doads và sử dụng Date.compare( Date date1, Date date2 )phương thức và nó trả về một số có nghĩa là kết quả sau: -1 = date1 là ngày lessthan2. 0 = giá trị bằng nhau. 1 = date1 là ngày lớn hơn2. 8 hữu ích 0 bình luận chia sẻ answer Hoàng Diệu Hằng · Hoàng Diệu Hằng 19:35 29/01/2009 Để tạo ngày từ văn bản miễn phí trong Javascript, bạn cần phân tích cú pháp thành đối tượng Date (). Bạn có thể sử dụng Date.parse () để lấy văn bản miễn phí cố gắng chuyển đổi nó thành một ngày mới nhưng nếu bạn có quyền kiểm soát trang, tôi sẽ khuyên bạn nên sử dụng các hộp chọn HTML thay thế hoặc một công cụ chọn ngày như điều khiển lịch YUI hoặc UI UI Hẹn hò . Khi bạn có một ngày như những người khác đã chỉ ra, bạn có thể sử dụng số học đơn giản để trừ ngày và chuyển đổi lại thành một số ngày bằng cách chia số (tính bằng giây) cho số giây trong một ngày (60 * 60 * 24 = 86400). 7 hữu ích 0 bình luận chia sẻ answer Nguyễn Công Lý · Nguyễn Công Lý 03:03 23/07/2011 Giả sử bạn có các đối tượng ngày A và B, nhận giá trị thời gian EPOC của chúng, sau đó trừ đi để có sự khác biệt tính bằng mili giây. var diff = +A - +B;Đó là tất cả. 7 hữu ích 1 bình luận chia sẻ answer Dương Ngọc Bích · Dương Ngọc Bích 09:54 15/11/2012 Trừ hai ngày lấy chênh lệch tính bằng mili giây, nếu bạn nhận được 0cùng một ngày function areSameDate(d1, d2){ return d1 - d2 === 0 }7 hữu ích 0 bình luận chia sẻ answer Nguyễn Khai Minh · Nguyễn Khai Minh 09:51 20/10/2017 XEM THỜI GIAN Một ngày javascript không có khái niệm về múi giờ . Đó là một khoảnh khắc trong thời gian (tích tắc kể từ thời đại) với các chức năng tiện dụng để dịch sang và từ các chuỗi trong múi giờ "cục bộ". Nếu bạn muốn làm việc với ngày bằng cách sử dụng các đối tượng ngày, như mọi người ở đây đang làm, bạn muốn ngày của bạn đại diện cho nửa đêm UTC vào đầu ngày được đề cập. Đây là một quy ước phổ biến và cần thiết cho phép bạn làm việc với các ngày bất kể mùa hoặc múi giờ sáng tạo của họ. Vì vậy, bạn cần hết sức cảnh giác để quản lý khái niệm múi giờ, đặc biệt khi bạn tạo đối tượng Ngày UTC nửa đêm của mình. Hầu hết thời gian, bạn sẽ muốn ngày của bạn phản ánh múi giờ của người dùng. Nhấp vào nếu hôm nay là sinh nhật của bạn . Người dùng ở New Zealand và Mỹ nhấp vào cùng một lúc và nhận được các ngày khác nhau. Trong trường hợp đó, hãy làm điều này ... // create a date (utc midnight) reflecting the value of myDate and the environment's timezone offset. new Date(Date.UTC(myDate.getFullYear(),myDate.getMonth(), myDate.getDate()));Đôi khi, so sánh quốc tế hơn hẳn độ chính xác địa phương. Trong trường hợp đó, hãy làm điều này ... // the date in London of a moment in time. Device timezone is ignored. new Date(Date.UTC(myDate.getUTCYear(), myDate.getyUTCMonth(), myDate.getUTCDate()));Bây giờ bạn có thể so sánh trực tiếp các đối tượng ngày của bạn như các câu trả lời khác gợi ý. Đã cẩn thận để quản lý múi giờ khi bạn tạo, bạn cũng cần chắc chắn loại bỏ múi giờ khi bạn chuyển đổi trở lại thành một chuỗi đại diện. Vì vậy, bạn có thể sử dụng một cách an toàn ...
Và hoàn toàn tránh mọi thứ khác, đặc biệt là ...
7 hữu ích 0 bình luận chia sẻ answer Lý Trúc Quỳnh · Lý Trúc Quỳnh 11:25 06/05/2015 var date_today=new Date(); var formated_date = formatDate(date_today);//Calling formatDate Function var input_date="2015/04/22 11:12 AM"; var currentDateTime = new Date(Date.parse(formated_date)); var inputDateTime = new Date(Date.parse(input_date)); if (inputDateTime <= currentDateTime){ //Do something... } function formatDate(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'PM' : 'AM'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' hours = hours < 10 ? '0'+hours : hours ; minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours+":"+minutes+ ' ' + ampm; return date.getFullYear()+ "/" + ((date.getMonth()+1) < 10 ? "0"+(date.getMonth()+1) : (date.getMonth()+1) ) + "/" + (date.getDate() < 10 ? "0"+date.getDate() : date.getDate()) + " " + strTime; } 6 hữu ích 0 bình luận chia sẻ answer Dương Tuệ Lâm · Dương Tuệ Lâm 04:02 20/08/2011 Một phiên bản cải tiến của mã được đăng bởi "một số" /* Compare the current date against another date. * * @param b {Date} the other date * @returns -1 : if this < b * 0 : if this === b * 1 : if this > b * NaN : if a or b is an illegal date */ Date.prototype.compare = function(b) { if (b.constructor !== Date) { throw "invalid_date"; } return (isFinite(this.valueOf()) && isFinite(b.valueOf()) ? (this>b)-(this<b) : NaN ); };sử dụng: var a = new Date(2011, 1-1, 1); var b = new Date(2011, 1-1, 1); var c = new Date(2011, 1-1, 31); var d = new Date(2011, 1-1, 31); assertEquals( 0, a.compare(b)); assertEquals( 0, b.compare(a)); assertEquals(-1, a.compare(c)); assertEquals( 1, c.compare(a));5 hữu ích 1 bình luận chia sẻ answer Hoàng Bích Hà · Hoàng Bích Hà 01:40 22/08/2012 Tôi thường lưu trữ Datesnhư timestamps(Number)trong cơ sở dữ liệu. Khi tôi cần so sánh, tôi chỉ cần so sánh giữa các dấu thời gian đó hoặc chuyển đổi nó thành Date Object và sau đó so sánh với > Lưu ý rằng == hoặc === không hoạt động chính xác trừ khi các biến của bạn là tham chiếu của cùng một Đối tượng Ngày. Trước tiên, chuyển đổi các đối tượng Date thành dấu thời gian (số) và sau đó so sánh sự bằng nhau của chúng. 5 hữu ích 1 bình luận chia sẻ answer Bùi Hoàng Oanh · Bùi Hoàng Oanh 14:08 23/06/2012 Nếu sau đây là định dạng ngày của bạn, bạn có thể sử dụng mã này: var first = '2012-11-21'; var second = '2012-11-03'; if(parseInt(first.replace(/-/g,""),10) > parseInt(second.replace(/-/g,""),10)){ //... }Nó sẽ kiểm tra xem 20121121số có lớn hơn 20121103hay không. 4 hữu ích 1 bình luận chia sẻ answer Trịnh Hải Phượng · Trịnh Hải Phượng 17:34 24/10/2013 Trước khi so sánh Datesđối tượng, hãy thử đặt cả hai mili giây của chúng thành 0 like Date.setMilliseconds(0);. Trong một số trường hợp Dateđối tượng được tạo động trong javascript, nếu bạn tiếp tục in Date.getTime(), bạn sẽ thấy một phần nghìn giây thay đổi, điều này sẽ ngăn sự bình đẳng của cả hai ngày. 2 hữu ích 0 bình luận chia sẻ answer Võ Trung Thành · Võ Trung Thành 10:20 10/07/2012 from_date ='10-07-2012'; to_date = '05-05-2012'; var fromdate = from_date.split('-'); from_date = new Date(); from_date.setFullYear(fromdate[2],fromdate[1]-1,fromdate[0]); var todate = to_date.split('-'); to_date = new Date(); to_date.setFullYear(todate[2],todate[1]-1,todate[0]); if (from_date > to_date ) { alert("Invalid Date Range!\nStart Date cannot be after End Date!") return false; } Sử dụng mã này để so sánh ngày sử dụng javascript. Cảm ơn D.Jeeva 1 hữu ích 1 bình luận chia sẻ answer Hồ Vũ Anh · Hồ Vũ Anh 10:31 12/02/2013 var curDate=new Date(); var startDate=document.forms[0].m_strStartDate; var endDate=document.forms[0].m_strEndDate; var startDateVal=startDate.value.split('-'); var endDateVal=endDate.value.split('-'); var firstDate=new Date(); firstDate.setFullYear(startDateVal[2], (startDateVal[1] - 1), startDateVal[0]); var secondDate=new Date(); secondDate.setFullYear(endDateVal[2], (endDateVal[1] - 1), endDateVal[0]); if(firstDate > curDate) { alert("Start date cannot be greater than current date!"); return false; } if (firstDate > secondDate) { alert("Start date cannot be greater!"); return false; } 1 hữu ích 0 bình luận chia sẻ answer Hoàng Hoài Thương · Hoàng Hoài Thương 15:37 20/09/2013 Đây là những gì tôi đã làm trong một trong những dự án của tôi, function CompareDate(tform){ var startDate = new Date(document.getElementById("START_DATE").value.substring(0,10)); var endDate = new Date(document.getElementById("END_DATE").value.substring(0,10)); if(tform.START_DATE.value!=""){ var estStartDate = tform.START_DATE.value; //format for Oracle tform.START_DATE.value = estStartDate + " 00:00:00"; } if(tform.END_DATE.value!=""){ var estEndDate = tform.END_DATE.value; //format for Oracle tform.END_DATE.value = estEndDate + " 00:00:00"; } if(endDate <= startDate){ alert("End date cannot be smaller than or equal to Start date, please review you selection."); tform.START_DATE.value = document.getElementById("START_DATE").value.substring(0,10); tform.END_DATE.value = document.getElementById("END_DATE").value.substring(0,10); return false; } }gọi điều này trên mẫu onsubmit. hi vọng điêu nay co ich. 1 hữu ích 0 bình luận chia sẻ answer Đặng Ngọc Vân · Đặng Ngọc Vân 22:22 23/06/2014 Giả sử bạn xử lý định dạng ngày 2014[:-/.]06[:-/.]06này hoặc 06[:-/.]06[:-/.]2014ngày này , sau đó bạn có thể so sánh ngày theo cách này var a = '2014.06/07', b = '2014-06.07', c = '07-06/2014', d = '07/06.2014'; parseInt(a.replace(/[:\s\/\.-]/g, '')) == parseInt(b.replace(/[:\s\/\.-]/g, '')); // true parseInt(c.replace(/[:\s\/\.-]/g, '')) == parseInt(d.replace(/[:\s\/\.-]/g, '')); // true parseInt(a.replace(/[:\s\/\.-]/g, '')) < parseInt(b.replace(/[:\s\/\.-]/g, '')); // false parseInt(c.replace(/[:\s\/\.-]/g, '')) > parseInt(d.replace(/[:\s\/\.-]/g, '')); // falseNhư bạn có thể thấy, chúng tôi tách (các) dải phân cách và sau đó so sánh các số nguyên. 1 hữu ích 0 bình luận chia sẻ answer Tạ Thanh Loan · Tạ Thanh Loan 13:45 08/04/2016 Xin chào Đây là mã của tôi để so sánh ngày. Trong trường hợp của tôi, tôi đang kiểm tra để không cho phép chọn ngày qua. var myPickupDate = <pick up date> ; var isPastPickupDateSelected = false; var currentDate = new Date(); if(currentDate.getFullYear() <= myPickupDate.getFullYear()){ if(currentDate.getMonth()+1 <= myPickupDate.getMonth()+1 || currentDate.getFullYear() < myPickupDate.getFullYear()){ if(currentDate.getDate() <= myPickupDate.getDate() || currentDate.getMonth()+1 < myPickupDate.getMonth()+1 || currentDate.getFullYear() < myPickupDate.getFullYear()){ isPastPickupDateSelected = false; return; } } } console.log("cannot select past pickup date"); isPastPickupDateSelected = true;1 hữu ích 0 bình luận chia sẻ Xem nguồn: https://stackoverflow.com//questions/492994/compare-two-dates-with-javascript |