我正在开发一个 Angular 8+ 项目(所以我使用的是 Typscript),我有一个包含一些数据的表格,我需要为每一行显示两个日期之间的时间差。在我使用 Dayjs 的项目中。
一开始我使用的是这个功能:
calculateDelay(alertDate: string, operationDate: string): string {
if (alertDate && operationDate) {
return dayjs(alertDate).from(operationDate, true);
}
}
它返回这样的数据(2 days
- 2 years
- one day
....)
但是这个代码有一个问题,当有一个 1 (天或其他什么)时,它是用文本而不是数字写的,我只想要数字。(该函数应该返回一个字符串,但我想要这种格式1 year
而不是one year
)。
所以我尝试了这个
calculateDelay(alertDate: string, operationDate: string): string {
if (alertDate && operationDate) {
const date: string = dayjs(alertDate).from(operationDate, true);
const [value, unit]: string[] = date.split(" ");
return isNaN(+value) ? "1 " + unit : value + " " + unit;
}
}
(isNaN 来自 loadash)
它运行良好,但有一个问题......第二个函数的输出是some seconds
,所以我的新代码返回1 seconds
语法错误(因为只有一秒钟)。
我知道有一个.format()
用 day js 调用的方法,但我只是不知道如何正确使用它,因为格式并没有真正修复(我希望它可能相关的月、年、分钟的结果)。
有人可以帮我吗?
另外我想避免自定义解析和删除字符串末尾无用的 s (如果可能的话)。
提前致谢