Hướng dẫn compare date string javascript - so sánh chuỗi ngày javascript

Tôi có hai ngày chuỗi ở định dạng m/d/yyyy. Ví dụ: 11/1/1/2012 ,, 1/2/2013. Tôi đang viết một chức năng trong JavaScript để so sánh hai ngày chuỗi. Chữ ký của chức năng của tôi là

if ["2012-11-01" < "2012-11-04"] {
    alert ["Error!"];
}
2 Nếu ngày được truyền bởi String1 muộn hơn so với ngày được truyền bởi String2, nó sẽ trả về đúng, nếu không thì sai. Vì vậy, Islater [Hồi 1/2/2013 ,, 11/1/2012] sẽ trả về đúng. Làm cách nào để viết một chức năng JavaScript cho việc này?

Đã hỏi ngày 8 tháng 2 năm 2013 lúc 20:52Feb 8, 2013 at 20:52

3

var d1 = Date.parse["2012-11-01"];
var d2 = Date.parse["2012-11-04"];
if [d1 < d2] {
    alert ["Error!"];
}

Demo jsfiddle

Gần đây được phát hiện từ một nhận xét mà bạn có thể so sánh trực tiếp các chuỗi như dưới đây

if ["2012-11-01" < "2012-11-04"] {
    alert ["Error!"];
}

Đã trả lời ngày 8 tháng 2 năm 2013 lúc 20:57Feb 8, 2013 at 20:57

GarrygarryGarry

4.8195 Huy hiệu vàng31 Huy hiệu bạc44 Huy hiệu đồng5 gold badges31 silver badges44 bronze badges

8

Bạn chỉ có thể so sánh 2 chuỗi

function isLater[dateString1, dateString2] {
  return dateString1 > dateString2
}

sau đó

isLater["2012-12-01", "2012-11-01"]

trả về đúng trong khi

isLater["2012-12-01", "2013-11-01"]

trả về sai

Đã trả lời ngày 13 tháng 3 năm 2017 lúc 10:03Mar 13, 2017 at 10:03

Fuyifuyifuyi

2.4654 Huy hiệu vàng22 Huy hiệu bạc44 Huy hiệu đồng4 gold badges22 silver badges44 bronze badges

7

Phân tích các ngày và so sánh chúng như bạn sẽ là số:

function isLater[str1, str2]
{
    return new Date[str1] > new Date[str2];
}

Nếu bạn cần hỗ trợ định dạng ngày khác, hãy xem xét một thư viện như Date.js.

Đã trả lời ngày 8 tháng 2 năm 2013 lúc 20:54Feb 8, 2013 at 20:54

Matt Zeunertmatt ZeunertMatt Zeunert

15.7K6 Huy hiệu vàng 50 Huy hiệu bạc78 Huy hiệu Đồng6 gold badges50 silver badges78 bronze badges

3

Trực tiếp phân tích một chuỗi ngày không ở định dạng Yyyy-MM-DD, như trong câu trả lời được chấp nhận không hoạt động. Câu trả lời của Vitran không hoạt động nhưng có một số jQuery trộn lẫn vì vậy tôi đã làm lại nó một chút.

// Takes two strings as input, format is dd/mm/yyyy
// returns true if d1 is smaller than or equal to d2

function compareDates[d1, d2]{
var parts =d1.split['/'];
var d1 = Number[parts[2] + parts[1] + parts[0]];
parts = d2.split['/'];
var d2 = Number[parts[2] + parts[1] + parts[0]];
return d1 

Bài Viết Liên Quan

Chủ Đề