当我尝试计算两个日期选择器值之间的差异时,单击功能不起作用。但当我尝试做一些简单的事情时: document.getElementById(“price”)。innerHTML =“safas”;它工作..我无法弄明白,我使用的代码也在空白页面中工作。
$(document).ready(function(){
var $datepicker1 = $( "#datepicker1" );
var $datepicker2 = $( "#datepicker2" );
$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;
document.getElementById("Label1").innerHTML = days;
}
});
});
所以我尝试了建议的解决方案并对其进行了一些研究,最终我无法处理它。
答案 0 :(得分:0)
我建议写一个小函数来帮助解决这个问题:
function dateDifference(start, end) {
var d1 = new Date(start);
var d2 = new Date(end);
return Math.round(Math.abs((d2 - d1) / 86400000));
}
这个函数,给定两个日期的字符串格式,如mm/dd/yy
或01/21/2017,它将返回两个日期之间的天数。
这里有一个更接近您的代码的示例:https://jsfiddle.net/Twisty/g0ujgbdo/
<强> HTML 强>
<label for="datepicker1">From</label>
<input type="text" id="datepicker1" name="from">
<label for="datepicker2">to</label>
<input type="text" id="datepicker2" name="to">
<p id="results"></p>
<强>的JavaScript 强>
$(function() {
var dF = "mm/dd/yy",
from = $("#datepicker1")
.datepicker()
.on("change", function() {
to.datepicker("option", "minDate", gD($(this)));
if (from.datepicker("getDate") !== null && to.datepicker("getDate") !== null) {
$("#results").html("You selected " + dateDifference(from.datepicker("getDate"), to.datepicker("getDate")) + " days.");
}
}),
to = $("#datepicker2").datepicker()
.on("change", function() {
from.datepicker("option", "maxDate", gD($(this)));
if (from.datepicker("getDate") !== null && to.datepicker("getDate") !== null) {
$("#results").html("You selected " + dateDifference(from.datepicker("getDate"), to.datepicker("getDate")) + " days.");
}
});
function gD($el) {
return $.datepicker.parseDate(dF, $el.val()) || null;
}
function dateDifference(start, end) {
var d1 = new Date(start);
var d2 = new Date(end);
return Math.round(Math.abs((d2 - d1) / 86400000));
}
});