很抱歉,如果问题重复,但我在这里找不到关于我的案例的任何内容。
我得到了一个函数 getDaysDiff
,其中我传递了两个参数 (startDate, endDate)
,它们是日期字符串,并期望以天为单位获得两个日期之间的差异,但有一些细节。
像这样:
'2021-07-19T23:59:59'
和 '2021-07-20T00:00:01'
,我想获得 1 天 作为返回值,因为即使小时数小于 24,日期也不同< /li>
'2021-07-19T00:00:01'
和'2021-07-20T23:59:59'
,在这种情况下,我还是想得到1天'2021-07-30T23:59:59'
和 '2021-08-01T00:00:01'
也应该返回 1 天。我尝试应用以下函数,但多亏了 Math.round/floor/ceil
,它在上述情况之一中无论如何都会中断。
function getDaysDiff(start, end) {
const date1 = new Date(start);
const date2 = new Date(end);
const oneDay = 1000 * 60 * 60 * 24;
const diffInTime = date2.getTime() - date1.getTime();
const diffInDays = Math.ceil(diffInTime / oneDay);
return diffInDays;
}
console.log(getDaysDiff('2021-07-19T23:59:59', '2021-07-20T00:00:01'));
console.log(getDaysDiff('2021-07-19T00:00:01', '2021-07-20T23:59:59'));
console.log(getDaysDiff('2021-07-31T23:59:59', '2021-08-01T00:00:01'));
有没有办法获得这种差异?