【问题标题】:JQuery Calculate Day Difference in 2 date textboxesJQuery计算2个日期文本框中的日差
【发布时间】:2011-02-06 06:15:24
【问题描述】:

我有 2 个带有日历扩展器的 asp.net texbox。我想找出更改日期控件之一时两个日期之间的天数。如何使用 jquery 或 javascript 实现这一点?

【问题讨论】:

标签: jquery datetime


【解决方案1】:

这应该可以解决问题

var start = $('#start_date').val();
var end = $('#end_date').val();

// end - start returns difference in milliseconds 
var diff = new Date(end - start);

// get days
var days = diff/1000/60/60/24;

例子

var start = new Date("2010-04-01"),
    end   = new Date(),
    diff  = new Date(end - start),
    days  = diff/1000/60/60/24;

days; //=> 8.525845775462964

【讨论】:

  • 完美!正是我需要的!谢谢!
  • 对我来说, var diff = new Date(Date.parse(to) - Date.parse(from)) 有效。不过答案很好:)
  • (Date.parse("2019-01-02") - Date.parse("2019-01-01")) / 86400000 // => 1 天
【解决方案2】:

1) html

<input type="text" id="firstDate" name="firstDate"/>
<input type="text" id="secondDate" name="secondDate"/>

2) jQuery

$("#firstDate").datepicker({

}); 
$("#secondDate").datepicker({
    onSelect: function () {
        myfunc();
    }
}); 

function myfunc(){
    var start= $("#firstDate").datepicker("getDate");
    var end= $("#secondDate").datepicker("getDate");
    days = (end- start) / (1000 * 60 * 60 * 24);
    alert(Math.round(days));
}

Jsfiddle 工作示例here

【讨论】:

    【解决方案3】:

    嗨, 这是我计算两个日期之间差异的示例

        <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <script src="https://code.jquery.com/jquery.min.js"></script>
      <title>JS Bin</title>
    </head>
    <body>
      <br>
    <input class='fromdate' type="date"  />
    <input class='todate' type="date" />
    <div class='calculated' /><br>
    <div class='minim' />  
    <input class='todate' type="submit" onclick='showDays()' />
    
    </body>
    </html>
    

    这是计算差值的函数:

    function showDays(){
    
         var start = $('.fromdate').val();
         var end = $('.todate').val();
    
         var startDay = new Date(start);
         var endDay = new Date(end);
         var millisecondsPerDay = 1000 * 60 * 60 * 24;
    
         var millisBetween = endDay.getTime() - startDay.getTime();
         var days = millisBetween / millisecondsPerDay;
    
          // Round down.
           alert( Math.floor(days));
    
    }
    

    希望对你有所帮助

    【讨论】:

    • Math.floor(days/30)
    【解决方案4】:

    计算两个日期之间的天数。

        $(document).ready(function () {
            $('.submit').on('click', function () {
                var startDate = $('.start-date').val();
                var endDate = $('.end-date').val();
    
                var start = new Date(startDate);
                var end = new Date(endDate);
    
                var diffDate = (end - start) / (1000 * 60 * 60 * 24);
                var days = Math.round(diffDate);
            });
        });
    

    【讨论】:

      【解决方案5】:

      这就是我使用 Math.floor() 函数的方式:

      var start = new Date($('#start').val());
      var end = new Date($('#end').val());
      var diff = Math.floor((end-start) / (365.25 * 24 * 60 * 60 * 1000));
      console.log(diff);
      

      你也可以使用 Math.round() 函数来做到这一点:

      var start = new Date($('#start').val());
      var end = new Date($('#end').val());
      var diff = new Date(end - start) / (1000 * 60 * 60 * 24 * 365.25);
      var age = Math.round(diff);
      console.log(age);
      

      【讨论】:

        【解决方案6】:
           **This is a simple way of getting the DAYS between two dates** 
            var d1 = moment($("#StartDate").data("DateTimePicker").date());
            var d2 = moment($("#EndDate").data("DateTimePicker").date());
        
            var diffInDays = d2.diff(d1, 'days');
        
            if (diffInDays > 0)
            {
                $("#Total").val(diffInDays);
            }
            else
            {
                $("#Total").val(0);
            }
        

        【讨论】:

          【解决方案7】:
            var days=0;
            function myfunc(){
                var start= $("#firstDate").datepicker("getDate");
                var end= $("#secondDate").datepicker("getDate");
                days = (end- start) / (1000 * 60 * 60 * 24);
                alert(Math.round(days));
            }
          

          【讨论】:

          • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
          【解决方案8】:
          $("#edate").change(function(){
          
             var edate = new Date($('#edate').val());
             var sdate = new Date($('#sdate').val());
             
             days = (edate- sdate) / (1000 * 60 * 60 * 24);
             days=days+1;
             alert (days);
             $("#nod").val(days);
          });
          

          【讨论】:

          • 代码只说“不需要欣赏我。”
          【解决方案9】:

          这是获取两个日期之间的 DAYS 的简单方法

          var nites = dateDiff(arriveDate,departDate,"D");
          

          【讨论】:

          • dateDiff 不是内置的 javascript 或 jquery 函数。
          猜你喜欢
          • 1970-01-01
          • 2017-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多