【问题标题】:Javascript calculate difference between two dates yy-mm-ddJavascript计算两个日期yy-mm-dd之间的差异
【发布时间】:2011-10-05 21:26:34
【问题描述】:

我已经阅读了很多关于在 javascript 中计算日期差异的文章和问题,但我找不到我正在寻找的格式。

我不需要几小时、几分钟或相信或不相信毫秒……我只需要几天。我正在检查以确保某一天发生在同一天或之后。

日期格式为 2010-10-05

我试过这个,但我得到的只是 NaN:

var diff =  Math.floor(( Date.parse(end_date) - Date.parse(start_date) ) / 86400000);

【问题讨论】:

    标签: javascript date datediff


    【解决方案1】:

    我是否理解正确,您实际上并不需要知道这两天相隔多少天,您只需要知道它们是同一日期还是较晚的日期?在这种情况下,常规字符串比较可以告诉您,只要您始终使用格式“yyyy-mm-dd”,即两位数的月份和两位数的天数;例如,“2010-10-05”

    【讨论】:

    • 伙计,我已经习惯了 javascript 过于复杂,我什至不期待一个简单的答案。谢谢!
    【解决方案2】:

    在 Firefox 中运行良好:

    JSFiddle

    var diff,
      aDay = 86400000,
      start_date = "2010-10-05",
      end_date = "2010-10-15";
    
    diff = Math.floor(
      (
        Date.parse(end_date) - Date.parse(start_date)
      ) / aDay);
    
    console.log(diff)
    
    //but perhaps this is safer:
    
    diff = Math.floor(
      (
        Date.parse(
          end_date.replace(/-/g, '\/')
        ) - Date.parse(
          start_date.replace(/-/g, '\/')
        )
      ) / aDay);
    console.log(diff)

    【讨论】:

      【解决方案3】:

      您首先必须解析日期。但是内置 Date.parse 可能无法识别它。从以下开始:

      var dateStr = "2010-10-05";
      var regex = /(\d{4})-(\d{2})-(\d{2})/.exec(dateStr);
      var date = new Date(regex[1], regex[2] - 1, regex[3]);  //Tue Oct 05 2010 00:00:00 GMT+0200 (CEST)
      

      拥有Date 对象的两个实例,您可以随意比较它们。但是您的条件检查两个日期是否在 24 小时内,我想这不是您想要的,因为您的日期没有时间戳...

      【讨论】:

        【解决方案4】:

        希望对你有帮助

            t1="2010-12-20";  //date1
            t2="2010-12-30";  //date2
        
            var one_day=1000*60*60*24; 
        
            var x=t1.split("-");     
            var y=t2.split("-");
        
            var date1=new Date(x[0],(x[1]-1),x[2]);
            var date2=new Date(y[0],(y[1]-1),y[2]);
        
            var month1=x[1]-1;
            var month2=y[1]-1;
        
            _Diff=Math.ceil((date2.getTime()-date1.getTime())/(one_day));
        
        alert(_Diff);
        

        【讨论】:

          猜你喜欢
          • 2013-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-19
          • 2014-08-23
          • 1970-01-01
          相关资源
          最近更新 更多