你能在 dayjs 中使用 .format() 和 .form()

Can you use .format() and .form() with dayjs

我正在做一个 Angular 8+ 项目(所以我使用的是 Typscript),我有一个 table 和一些数据,我需要显示两个日期之间的时间差对于每一行。在我使用 Dayjs 的项目中。

一开始我用的是这个功能:

calculateDelay(alertDate: string, operationDate: string): string {
    if (alertDate && operationDate) {
      return dayjs(alertDate).from(operationDate, true);
    }
  }

它 return 像这样编辑数据 (2 days - 2 years - one day ....)

但是这个代码有一个问题,当有一个 1(年份或其他日期)时,它是用文本而不是数字写的,我只想要数字。 (该函数应该 return 一个字符串,但我想要这种格式 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 所以我的新代码 return 1 seconds 有语法错误(因为只有一秒钟)。

我知道有一个方法叫 .format() with day js 但我不知道如何正确使用它,因为格式不是很固定(我想要月、年、可能相关的分钟数)。

有人能帮帮我吗?

另外我想避免自定义解析和删除字符串末尾无用的 s(如果可能的话)。

提前致谢

在我调查存储库时,您可以使用插件 UpdateLocale 并覆盖默认配置。有一个例子给你。 DayJs locale override