distanceInWord
根据文档,您不能这样做,因为它是为广泛的范围和短的结果字符串(about 7 years
而不是7 years, 4 months, 7 weeks, 3 days and 5 seconds
)创建的。您只能强制单位distanceInWordStrict
传入{unit: 'm'}
,因为第三个参数将输出90 minutes
。
但是你可以得到任何单位和根据结果的日期之间的差异 - 你想要的格式。像这样的东西:
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`;
此外,您可以简单地以毫秒为单位获取差异,从中创建一个日期对象并以您喜欢的任何方式格式化。
请注意,如果您的差异超过一天,它将以小时数输出。所以最终的解决方案主要取决于你的各种可能范围。