比较两个javascript字符串日期

时间:2013-10-22 17:30:15

标签: javascript jquery

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

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) {...}

3 个答案:

答案 0 :(得分:16)

如果始终采用此格式(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

See Lexicographical order

  

词典排序的重要利用表现在   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

Check this fiddle

答案 1 :(得分:1)

您可以尝试这样:

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

另请查看 Date.parse Compare dates with JavaScript

答案 2 :(得分: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);