【问题标题】:How to get date difference with specific date format?如何获取特定日期格式的日期差异?
【发布时间】:2013-05-17 19:08:08
【问题描述】:

在我的 javascript 代码中,我只能以这种格式将日期作为字符串获取: 示例:Mon May 28 11:20:46 EDT 2012

有没有一种方法可以检查该日期和当前日期是否为 >= 超过 1 周?

【问题讨论】:

    标签: javascript datetime datediff


    【解决方案1】:

    只需减去它们

    var today = new Date(),
        test = new Date(dateString);
    
    if (today - test > (7 * 24 * 60 * 60 * 1000)) { // time is in milliseconds
      console.log('more than a week ago');
    }
    

    【讨论】:

      【解决方案2】:

      只需使用您的日期字符串启动一个 Date 对象,并将其时间戳与今天的时间戳进行比较

      var d1 = new Date("Mon May 10 11:20:46 EDT 2013");
      alert((new Date()) - d1 >=  (7 * 24 * 60 * 60 * 1000));
      

      【讨论】:

        【解决方案3】:

        您应该了解,时区缩写并不保证是唯一的。解析具有时区缩写的日期字符串可能很危险。例如,您怎么知道CST 在美国的意思是“中部标准时间”,而不是“中国标准时间”?请参阅this list of abbreviations,您会发现许多不同的时区在缩写时具有相同的字母。

        大多数浏览器会根据您的本地区域做出一些假设。但你可能不想依赖这个。

        此外,并非每个浏览器都支持解析您拥有的格式。如果您不喜欢这种格式,您应该考虑使用moment.js 来解析日期字符串。不过,您仍然需要解决时区问题。

        Moment.js 还有一些很棒的功能可以帮助您:

        var now = moment();
        if (now >= moment(yourDate).add('weeks', 1))
        {
            ...
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-04
          • 1970-01-01
          • 1970-01-01
          • 2014-02-13
          • 1970-01-01
          • 1970-01-01
          • 2015-04-09
          • 1970-01-01
          相关资源
          最近更新 更多