gpt4 book ai didi

Javascript date-fns 更具体的 distanceInWords

转载 作者:行者123 更新时间:2023-12-02 23:53:57 26 4
gpt4 key购买 nike

我正在使用distanceInWord知道两个日期之间有多少时间。但这并不完全是我想要的,因为我需要更具体。

例如,如果我有这个:2019年1月1日15:00:00和2019年1月1日16:30:00

实际上,使用 distanceInWordStrict() 会返回 1 小时,或者使用 distanceInWord() 返回约 1 小时

所以我需要为此获取1h30

我该怎么做才能更具体? 1小时30分、2小时15分、3小时45分、2天5小时等...

最佳答案

根据文档,您不能使用 distanceInWord 来做到这一点,因为它是为大范围和短结果字符串创建的(大约 7 年 而不是 7 年、4 个月、7 周、3 天 5 秒)。您只能强制采用 distanceInWordStrict 单位 - 将 {unit: 'm'} 作为第三个参数传递将输出 90 分钟

但是您可以根据您想要的结果格式获得任何单位的日期之间的差异。像这样的事情:

let result;

const date1 = '1 January 2019 15:00:00';
const date2 = '1 January 2019 16:30:00';

const minutes = Math.abs(differenceInMinutes(date1, date2));

if(minutes < 60) {
result = distanceInWordsStrict(date1, date2, {unit: 'm'})
}
else {
result = distanceInWordsStrict(date1, date2, {unit: 'h'});
result = result.replace(/ hours?/, `h${minutes % 60}m`)
}

如果您从不超过几个小时,那么这将是一种更简单的格式化方法:

const hours = Math.abs(differenceInHours(date1, date2);
result = `${hours}h${minutes % 60}m`;

此外,您可以简单地获取以毫秒为单位的差异,从中创建一个日期对象并以您喜欢的任何方式格式化。

请注意,如果差异超过一天,则会输出几个小时。因此,最终的解决方案主要取决于您可能的范围。

关于Javascript date-fns 更具体的 distanceInWords,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55496128/

26 4 0