我有以下代码,需要计算两个日期之间的差,但是为什么我得到的diff不是函数?注意我正在使用pikaday.js和moment.js,但是为了简单起见,我已经对输入进行了硬编码。我在StackOverflow上看到过其他类似的帖子,但是我是moment.js的新手,并且需要语法帮助,而不仅仅是作为答复的简短句子。预先谢谢你。
<div>ARRIVAL</div>
<div>
<input type="text" id="txtArrival" value="07/12/18">
</div>
<div>DEPARTURE</div>
<div>
<input type="text" id="txtDeparture" value="15/12/18">
</div>
var aDate, dDate, a, b, days;
//get arrival and departure
aDate = new Pikaday({
field: document.getElementById('txtArrival'),
format: 'D MMM YYYY',
onSelect: function() {
console.log(aDate.getMoment().format('DD/MM/YY'));
}
});
dDate = new Pikaday({
field: document.getElementById('txtDeparture'),
format: 'D MMM YYYY',
onSelect: function() {
console.log(dDate.getMoment().format('DD/MM/YY'));
}
});
//calculate days
a = aDate.getMoment().format('DD/MM/YYYY');
d = dDate.getMoment().format('DD/MM/YYYY');
days = d.diff(a, 'days');
答案 0 :(得分:1)
format()
返回string
,因此会出现错误。您需要使用moment
对象并对它们执行.diff()
使用
days = dDate.getMoment().diff(aDate.getMoment(), 'days');
代替
days = d.diff(a, 'days');