Javascript 如何计算两次约会之间的差异?jquery日期选择器

Javascript 如何计算两次约会之间的差异?jquery日期选择器,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我试图使用jquery datepicker计算所选的#from day和#to day之间的总天数 “在写这篇文章之前,我已经阅读了很多问题,所以我只是想问为什么下面的代码不起作用…” 代码如下: $(function() { $( "#from" ).datepicker({ numberOfMonths: 1, minDate:0, dateFormat: 'dd-mm-yy', onClose: function( selectedDate ) { $( "#to" ).datepic

我试图使用jquery datepicker计算所选的#from day和#to day之间的总天数

“在写这篇文章之前,我已经阅读了很多问题,所以我只是想问为什么下面的代码不起作用…”

代码如下:

$(function() {

$( "#from" ).datepicker({
numberOfMonths: 1,
minDate:0,
dateFormat: 'dd-mm-yy',
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
$("input[name='to']").val(selectedDate);
var dayFrom = selectedDate; /* Selected From Date */
}
});

$( "#to" ).datepicker({
defaultDate: "+1w",
numberOfMonths: 1,
minDate:0,
dateFormat: 'dd-mm-yy',
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
var dayTo = selectedDate; /* Selected To Date */

$(dayFrom, dayTo).change(function(){
if($(dayFrom).val() && $(dayTo).val()){
var startDate = parseDate($(dayFrom).val());
var endDate = parseDate($(dayTo).val());
var days = calcDaysBetween(startDate, endDate);
var price = calcPrice(days);

$('#finalDagen').html(days);
}
});
function parseDate(s){
var parts = s.split('/');
return new Date(parts[2], parts[0]-1, parts[1]);
}
function calcDaysBetween(startDate, endDate){
return (endDate-startDate)/(1000*60*60*24);
}
}
});
});
观察

  • 更改处理程序应该注册到from和to元素,而不是注册到保存值的变量
  • 使用小部件方法getDate()获取小部件的日期值
  • 更改事件应该在dom就绪处理程序中注册,而不是在
    onClose
    方法中注册
应该是

jQuery(function ($) {
    var $from = $("#from"),
        $to = $("#to");

    $from.datepicker({
        numberOfMonths: 1,
        minDate: 0,
        dateFormat: 'dd-mm-yy',
        onClose: function (selectedDate) {
            $to.datepicker("option", "minDate", selectedDate);
        }
    });

    $to.datepicker({
        defaultDate: "+1w",
        numberOfMonths: 1,
        minDate: 0,
        dateFormat: 'dd-mm-yy',
        onClose: function (selectedDate) {
            $from.datepicker("option", "maxDate", selectedDate);
        }
    });
    $from.add($to).change(function () {
        var dayFrom = $from.datepicker('getDate');
        var dayTo = $to.datepicker('getDate');
        if (dayFrom && dayTo) {
            var days = calcDaysBetween(dayFrom, dayTo);

            $('#finalDagen').html(days);
        }
    });

    function calcDaysBetween(startDate, endDate) {
        return (endDate - startDate) / (1000 * 60 * 60 * 24);
    }
});

演示:

尝试减去两个:

var dayDifference = dayTo - dayFrom;

我只是意识到它也会给出奇数如果你选择3月30日到3月31日我得到:0.9583333334我怎么能解决这个问题。。