javascript dayjs两个日期之间以天和小时表示差异

xj3cbfub  于 2023-02-21  发布在  Java
关注(0)|答案(3)|浏览(267)

我想用dayjs库计算两个日期之间的差异。它工作得很好,但我需要一些不同的东西一点点。例如:

`${dayjs(item).diff(now, 'day') day}`

这个函数返回'20天'或者其他什么。但是在'item'里面有没有计算的小时。我的意思是它应该像'20天9小时'。
dayjs我怎么能做到这一点?
谢谢你的帮助

b5buobof

b5buobof1#

1.以小时为单位获取差值
1.将小时除以(并四舍五入)24得到天数
1.取余数,这是剩余的小时数

const date1 = dayjs('2021-03-13');
const date2 = dayjs();

let hours = date2.diff(date1, 'hours');
const days = Math.floor(hours / 24);
hours = hours - (days * 24);

console.log('Days: ', days);
console.log('Hours: ', hours);
<script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>

同样的逻辑可以使用秒来完成,然后应用一个函数将这些秒转换为天/小时/分钟:Convert seconds to HH-MM-SS with JavaScript?

eufgjt7s

eufgjt7s2#

您可以获得带小数的天数(将true作为第二个参数添加到diff并使用它:

const date1 = dayjs('2021-03-13');
const date2 = dayjs();
const diff = date2.diff(date1,'day',true);
console.log("obtained", diff);
const days = Math.floor(diff);
const hours = Math.floor((diff - days) * 24);
console.log(`${days} days, ${hours} hours`);
<script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
lztngnrs

lztngnrs3#

${dayjs(item).diff(now, '小时') day}而不是${dayjs(item).diff(now, '') day}
第二个参数是要使用的测量单位,您可以将其设置为天

相关问题