我想用dayjs库计算两个日期之间的差异。它工作得很好,但我需要一些不同的东西一点点。例如:
`${dayjs(item).diff(now, 'day') day}`
这个函数返回'20天'或者其他什么。但是在'item'里面有没有计算的小时。我的意思是它应该像'20天9小时'。dayjs我怎么能做到这一点?谢谢你的帮助
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?
eufgjt7s2#
您可以获得带小数的天数(将true作为第二个参数添加到diff并使用它:
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`);
lztngnrs3#
${dayjs(item).diff(now, '小时') day}而不是${dayjs(item).diff(now, '天') day}第二个参数是要使用的测量单位,您可以将其设置为天
${dayjs(item).diff(now, '
') day}
3条答案
按热度按时间b5buobof1#
1.以小时为单位获取差值
1.将小时除以(并四舍五入)24得到天数
1.取余数,这是剩余的小时数
同样的逻辑可以使用秒来完成,然后应用一个函数将这些秒转换为天/小时/分钟:Convert seconds to HH-MM-SS with JavaScript?
eufgjt7s2#
您可以获得带小数的天数(将
true
作为第二个参数添加到diff
并使用它:lztngnrs3#
${dayjs(item).diff(now, '
小时') day}
而不是${dayjs(item).diff(now, '
天') day}
第二个参数是要使用的测量单位,您可以将其设置为天