Diff n'est pas une fonction dans Moment.js
Je suis à la sélection d'une date en l'Air Datepicker et d'essayer de comparer la date d'aujourd'hui pour la date sélectionnée afin de déterminer la différence en jours. Ainsi, par exemple, si aujourd'hui est 12/11/2016 et je sélectionne 12/20/2016, je veux obtenir la différence, qui est de 9.
Je continuer à courir dans l'erreur suivante: "à la fin.diff n'est pas une fonction".
J'ai dépouillé le code suivant à l'essentiel:
HTML
<form>
<input id="datereq" name="datereq" type="text" class="dateReq" value="" />
</form>
<div id="selected"></div>
JQUERY
var date = new Date(),
disabledDays = [0, 6];
$('.dateReq').datepicker({
dateFormat: 'mm/dd/yyyy',
minDate: new Date(),
language: 'en',
autoClose: true,
onRenderCell: function(date, cellType) {
if (cellType == 'day') {
var day = date.getDay(),
isDisabled = disabledDays.indexOf(day) != -1;
return {
disabled: isDisabled
};
}
},
//Display Appropriate Order Type Options
onSelect: function onSelect(fd, date) {
var now = moment(new Date()).format('MM/DD/YYYY'),
end = fd,
days = end.diff(now, 'days');
$('#selected').html('now:' + now + 'end:' + end + 'diff:' + days);
//console.log('end:' + end);
//console.log('diff:' + days);
}
});
Violon
https://jsfiddle.net/qn530dpq/
Vous devez vous connecter pour publier un commentaire.
le premier argument de la onSelect fonction de la date texte, pas un instant de l'objet.
Essayez d'appeler le diff fonction sur un moment de l'objet représentant la date sélectionnée et il va fonctionner. Aussi, vous aurez à spécifier la variable "fin", ce qui est probablement votre "fd".
Check it out: https://jsfiddle.net/t9suf65p/
La
diff
fonction n'est disponible que sur le moment les objets.Essayez plutôt ceci:
Vous pouvez utiliser quelque chose comme ceci: