.getDate()
n'est pas défini pour les objets de chaîne (qui est ce que .val()
vous donne), vous obtiendrez 2 undefined
des variables qui tentent de soustraire les uns les autres en bagarre et undefined - undefined === NaN
.
Au lieu de cela, vous devez obtenir la date des deux préparateurs et les date de soustraire comme ceci:
$('#EndDate').blur(function() {
var diff = dateDiff($('#StartDate').datepicker("getDate"),
$('#EndDate').datepicker("getDate"));
alert(diff);
});
function dateDiff(startDate, endDate) {
if(endDate && startDate) //make sure we don't call .getTime() on a null
return (endDate.getTime() - startDate.getTime())/(1000*60*60*24);
return "You must complete both dates!";
}
En outre, au lieu de blur
, j'utiliser l'événement onSelect
fourni, comme ceci:
$('#EndDate').datepicker({
onSelect: function() {
var diff = dateDiff($('#StartDate').datepicker("getDate"),
$('#EndDate').datepicker("getDate"));
alert(diff);
}
});
You can test it out here.
J'ai reçu "l'objet ne prend pas en charge" message d'erreur à endDate.getTime() – nav100
@ NAV100 - vous n'utilisez pas le datepicker jQuery UI? si non ... qu'est-ce que vous utilisez, et je suis très confus par vos étiquettes de questions ... –
Date de fin est nulle. J'ai donc reçu un message d'erreur. – nav100