So sánh trong reactjs

Boolean là một kiểu dữ liệu đặt biệt, xuất hiện phổ biến trong lập trình. Giá trị của boolean chỉ bao gồm hai giá trị là True, False hoặc 0,1. Tuy nhiên chức năng của nó là khá quan trọng. Trong hầu hết các so sánh, giá trị của boolean chính là kết quả của so sánh. Trong bài viết này, mình sẽ chia sẻ với bạn về kiểu dữ liệu boolean và các phép so sánh trong Javascript.

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
Boolean(b1);
//Kết quả trả về sẽ là true.

var x = "";
Boolean(x);
Kết quả trả về sẽ là false. Ngoài ra các biến chưa có giá trị, giá trị bằng 0 hoặc null cũng sẽ trả về false.

Các phép so sánh trong Javascript

Cá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:

  • x == y: Trả về true khi hai giá trị x và y bằng nhau không phân biệt kiểu dữ liệu. false khi ngược lại.
  • x === y: Trả về true khi hai giá trị x và y bằng nhau cả về giá trị lẫn kiểu dữ liệu. false khi ngược lại.
  • x != y: Trả về true khi hai giá trị x và y không bằng nhau không phân biệt kiểu dữ liệu. false khi ngược lại.
  • x !== y: Trả về true khi hai giá trị x và y không bằng nhau về giá trị hoặc kiểu dữ liệu. false khi ngược lại.
  • x > y: Trả về true khi x lớn hơn y. false khi ngược lại.
  • x < y: Trả về true khi x nhỏ hơn y. false khi ngược lại.
  • x >= y: Trả về true khi x lớn hơn hoặc bằng y. false khi ngược lại.
  • x <= y: Trả về true khi x nhỏ hơn hoặc bằng y. false khi ngược lại.

Ví dụ: if (she < 18) film = "Em chưa 18 !";

Toán tử logic trong Javascript

Cá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.

  • &&: Toán tử này xác định nếu vế bên phải và vế bên trái cùng đúng hoặc cùng sai thì sẽ trả về true, ngược lại là false. Ví dụ: (6 > 1 && 3 > 1) trả về true.
  • ||: Toán tử này xác định nếu vế bên phải đúng hoặc vế bên trái đúng thì sẽ trả về true, ngược lại là false. Ví dụ: (6 > 1 || 3 > 6) trả về true.
  • !: Đây là toán tử phủ định. Tức là nếu biểu thức đúng sẽ trả về là false và nếu sai sẽ trả về là true. Ví dụ: !(5 == 5) trả về false.

Sử dụng hàm điều kiện trong Javascript

Cá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 PM

So sánh trong reactjs

Phan 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.

  • javascript
  • date
  • datetime
  • object
  • compare

1577 hữu ích 5 bình luận 1.6m xem chia sẻ

answer

So sánh trong reactjs

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

So sánh trong reactjs

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:

  • date.compare (a, b)

    Trả về một số:

    • -1 nếu a
    • 0 nếu a = b
    • 1 nếu a> b
    • NaN nếu a hoặc b là một ngày bất hợp pháp
  • date.inRange (d, bắt đầu, kết thúc)

    Trả về boolean hoặc NaN:

    • đúng nếu d nằm giữa điểm bắt đầu và kết thúc (bao gồm)
    • sai nếu d là trước khi bắt đầu hoặc sau khi kết thúc .
    • NaN nếu một hoặc nhiều ngày là bất hợp pháp.
  • ngày.convert

    Được sử dụng bởi các chức năng khác để chuyển đổi đầu vào của chúng thành một đối tượng ngày. Đầu vào có thể là

    • một ngày -object: Đầu vào được trả về như là.
    • một mảng : Giải thích là [năm, tháng, ngày]. LƯU Ý tháng là 0-11.
    • một số : Được hiểu là số mili giây kể từ ngày 1 tháng 1 năm 1970 (dấu thời gian)
    • một chuỗi : Một số định dạng khác nhau được hỗ trợ, như "YYYY / MM / DD", "MM / DD / YYYY", "31 tháng 1 năm 2009", v.v.
    • một đối tượng : Giải thích như một đối tượng với các thuộc tính năm, tháng và ngày. LƯU Ý tháng là 0-11.

.

// 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

So sánh trong reactjs

Trần Mộng Giác · Trần Mộng Giác 12:21 23/05/2013

So sánh chỉ như bình thường, nhưng bất cứ điều gì liên quan =nên sử dụng +tiền tố. Thích như vậy:

var x = new Date('2013-05-23'); var y = new Date('2013-05-23'); // less than, greater than is fine: x < y; => false x > y; => false x === y; => false, oops! // anything involving '=' should use the '+' prefix // it will then compare the dates' millisecond values +x <= +y; => true +x >= +y; => true +x === +y; => true

Hi vọng điêu nay co ich!

243 hữu ích 5 bình luận chia sẻ

answer

So sánh trong reactjs

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; // false

Tuy 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ì :

  • Hai đối tượng riêng biệt không bao giờ bằng nhau cho các so sánh nghiêm ngặt hoặc trừu tượng.
  • Một biểu thức so sánh các Đối tượng chỉ đúng nếu các toán hạng tham chiếu cùng một Đối tượng.

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; // true

Cả 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

So sánh trong reactjs

Đỗ 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

So sánh trong reactjs

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; //true

So sánh trong reactjs

51 hữu ích 4 bình luận chia sẻ

answer

So sánh trong reactjs

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

So sánh trong reactjs

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 true

28 hữu ích 5 bình luận chia sẻ

answer

So sánh trong reactjs

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

So sánh trong reactjs

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)); //true

Giả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);//number

vì 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 21

BẢ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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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 ...

  • toISOString()
  • getUTCxxx()
  • getTime() //returns a number with no time or timezone.
  • .toLocaleDateString("fr",{timezone:"UTC"}) // whatever locale you want, but ALWAYS UTC.

Và hoàn toàn tránh mọi thứ khác, đặc biệt là ...

  • getYear(), getMonth(),getDate()

7 hữu ích 0 bình luận chia sẻ

answer

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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.

Ngày đến Dấu thời gian

var timestamp_1970 = new Date(0).getTime(); // 1970-01-01 00:00:00 var timestamp = new Date().getTime(); // Current Timestamp

Dấu thời gian đến ngày

var timestamp = 0; // 1970-01-01 00:00:00 var DateObject = new Date(timestamp);

5 hữu ích 1 bình luận chia sẻ

answer

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

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

So sánh trong reactjs

Đặ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, '')); // false

Như 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

So sánh trong reactjs

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

loading

loading