很抱歉,如果之前有人询问,但我找不到任何内容。这基本上就是我要做的事情:
new Date(response.departureDate).getTime() - new Date(response.arrivalDate).getTime()
我需要计算到达和离开日期之间的总天数(总是整数)。这些日期是字符串,结构为'YYYY-MM-DD'
。
我该怎么做?
答案 0 :(得分:1)
看看迈尔斯'回答here 只需将其更改为:
function parseDate(str) {
var mdy = str.split('-')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}
function daydiff(first, second) {
return Math.round((second-first)/(1000*60*60*24));
}
并使用:
daydiff(parseDate(response.departureDate), parseDate(response.arrivalDate));
答案 1 :(得分:0)
您可以使用RegEx
进行更改。
new Date(response.departureDate.replace(/-/g, "/")).getTime()
- new Date(response.arrivalDate.replace(/-/g, "/")).getTime()
因此,RegEx .replace(/-/g, "/")
会将所有-
替换为/
,JavaScript将能够正确阅读。
答案 2 :(得分:0)
你可以使用regexp或更多更简单的方法来熟悉 function fixNum(str, newnum) {
return str.replace(/\[\d+\]/,'[' + newnum + ']')
}
API,它可以让你非常顺利地处理JS中的日期(在Node和浏览器中工作)
它确实为您的工具箱添加了另一个工具,但是只要您操作日期,它就是值得的恕我直言。
与MomentJS合作的方式:
MomentJS
答案 3 :(得分:0)
我希望此示例能为您提供帮助
除了.diff()之外,您还可以使用片刻持续时间:http://momentjs.com/docs/#/durations/
示例小提琴:https://jsfiddle.net/abhitalks/md4jte5d/
示例代码段
$("#btn").on('click', function(e) {
var fromDate = $('#fromDate').val(),
toDate = $('#toDate').val(),
from, to, druation;
from = moment(fromDate, 'YYYY-MM-DD'); // format in which you have the date
to = moment(toDate, 'YYYY-MM-DD'); // format in which you have the date
/* using duration */
duration = moment.duration(to.diff(from)).days(); // you may use duration
/* using diff */
//duration = to.diff(from, 'days') // alternatively you may use diff
/* show the result */
$('#result').text(duration + ' days');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script>
From: <input id="fromDate" type='date' />
To: <input id="toDate" type='date' />
<button id="btn">Submit</button><hr />
<p id="result"></p>
答案 4 :(得分:0)
你可以使用这样的东西
function countDays(date1, date2)
{
var one_day=1000*60*60*24;
return Math.ceil((date1.getTime()- date2.getTime()) /one_day);
}
countDays(new Date(response.departureDate), new Date(response.arrivalDate));