最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Get the number of days between 2 dates using datepicker - Stack Overflow

programmeradmin1浏览0评论
$(function () {
    $("#from").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function (selectedDate) {
            $("#to").datepicker("option", "minDate", selectedDate);
        }
    });
    $("#to").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function (selectedDate) {
            $("#from").datepicker("option", "maxDate", selectedDate);
        }
    });
});

$("#to").change(function () {
    var final = $("#to").datepicker("getDate");
    var start = $("#from").datepicker("getDate");
    var days = new Date(final - start);
    alert(days);
});

<label for="from">From</label>
<input type="text" id="from" name="from" />
<label for="to">to</label>
<input type="text" id="to" name="to" />

This is what I have by far, I pretend to get the number of days passed between 2 dates everytime that final date is filled. I'm having some trouble because of conversions :s

Fiddle

$(function () {
    $("#from").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function (selectedDate) {
            $("#to").datepicker("option", "minDate", selectedDate);
        }
    });
    $("#to").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function (selectedDate) {
            $("#from").datepicker("option", "maxDate", selectedDate);
        }
    });
});

$("#to").change(function () {
    var final = $("#to").datepicker("getDate");
    var start = $("#from").datepicker("getDate");
    var days = new Date(final - start);
    alert(days);
});

<label for="from">From</label>
<input type="text" id="from" name="from" />
<label for="to">to</label>
<input type="text" id="to" name="to" />

This is what I have by far, I pretend to get the number of days passed between 2 dates everytime that final date is filled. I'm having some trouble because of conversions :s

Fiddle

Share Improve this question edited Apr 11, 2013 at 14:03 Pointy 414k62 gold badges595 silver badges629 bronze badges asked Apr 11, 2013 at 13:57 user1148875user1148875 4594 gold badges11 silver badges25 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

I believe THe biggest thing is that datepicker('getDate') returns a Date object already, so final and start are already date objects.

Now that you have two date objects you could the code samples in the following thread to get the number of days between them

How to calculate the number of days between two dates using JavaScript?

The following code is ripped right from the thread and google: you can fill in appropriately

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date(2008,01,12);
var secondDate = new Date(2008,01,22);

var diffDays = Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay));

The following example worked fine for me.

$(document).ready(function(){
   var $datepicker1 =  $( "#firstday" );
   var $datepicker2 =  $( "#lastday" );
   $datepicker1.datepicker();
   $datepicker2.datepicker({
       onClose: function() {
           var fromDate = $datepicker1.datepicker('getDate');
           var toDate = $datepicker2.datepicker('getDate');
           // date difference in millisec
           var diff = new Date(toDate - fromDate);
           // date difference in days
           var days = diff/1000/60/60/24;

           alert(days);
       }
   });
});

Refer:- calculate number of days between two dates in jquery datepicker

发布评论

评论列表(0)

  1. 暂无评论