【问题标题】:Compare two javascript string dates比较两个 javascript 字符串日期
【发布时间】:2013-10-31 17:15:51
【问题描述】:

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

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

【问题讨论】:

标签: javascript jquery


【解决方案1】:

你可以这样尝试:

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

还可以查看 Date.parseCompare dates with JavaScript

【讨论】:

    【解决方案2】:

    尝试使用时间戳。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        • 2019-07-25
        • 2013-06-24
        • 2014-04-21
        相关资源
        最近更新 更多