6

我将如何比较以下两个日期?

var start_date = $('#start_date').text();
var end_date = $('#end_date').text();
alert(start_date + ' ' + end_date); // '2013-01-01 2013-01-02'

# how to do the following?
if (start_date > end_date) {...}
4

3 回答 3

20

如果始终采用这种格式(yyyy-mm-dd/2013-01-01),那么您可以将其作为字符串进行比较

var d1 = '2013-11-01', d2 = '2013-11-02';
console.log(d1 < d2); // true
//console.log(d1.getFullYear()); won't work, not date object

参见字典顺序

ISO 8601 日期格式方案中表达了对字典顺序的重要利用,该方案将日期表示为 YYYY-MM-DD。这种日期排序有助于对日期进行直接的计算机化排序,这样排序算法不需要将日期字符串的数字部分与非数字字符的字符串区别对待,并且日期将按时间顺序排序。但是请注意,要使其正常工作,年份必须始终有四位数字,月份必须始终有两位数字,日期必须始终有两位

但是,您可以使用它来比较日期

var d1 = new Date("11-01-2013");
var d2 = new Date("11-04-2013");
console.log(d1);
console.log(d1.getMonth()); // 10 (0-11)
console.log(d1.getFullYear()); // 2013
console.log(d1.getDate()); // 1
console.log(d1 < d2); // true

检查这个小提琴

于 2013-10-22T18:07:12.990 回答
1

你可以这样尝试:

var d1 = Date.parse("2013-11-01");
var d2 = Date.parse("2013-11-04");
if (d1 < d2)

另请查看Date.parse使用 JavaScript 比较日期

于 2013-10-22T17:31:43.767 回答
1

尝试使用时间戳。

var date1 = +new Date("2013-11-01");
var date2 = +new Date("2013-11-04");

console.log(date1);
console.log(date2);

console.log(date1>date2);
于 2013-10-22T17:35:49.463 回答