标签: dayjs

类型错误:(0,dayjs_1.default)不是函数

这是我的logger.ts文件,那里发生错误:

import logger from "pino";
import dayjs from "dayjs";

const log = logger({
  prettyPrint: true,
  base: {
    pid: false,
  },
  timestamp: () => `,"time":"${dayjs().format()}"`,
});

export default log;
Run Code Online (Sandbox Code Playgroud)

错误:

yarn dev
yarn run v1.22.17
warning package.json: License should be a valid SPDX license expression
warning ..\..\..\..\package.json: No license field
$ ts-node-dev --respawn --transpile-only src/app.ts
[INFO] 19:09:45 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.6.3)
TypeError: (0 , dayjs_1.default) is not a function
    at timestamp (C:\Users\A\Desktop\desktop\base_code\back_bc_node\src\utils\logger.ts:9:37)
    at …
Run Code Online (Sandbox Code Playgroud)

typeerror node.js typescript dayjs

20
推荐指数
2
解决办法
4万
查看次数

如何将时间格式化为 dayjs 对象?

我有以下代码


import dayjs from 'dayjs'

const abc = dayjs("09:00:00")
console.log(abc)

Run Code Online (Sandbox Code Playgroud)

控制台中的 abc 是

无效日期

我怎样才能使它成为一个有效的日期,条件是输入始终采用“09:00:00”格式

javascript reactjs dayjs

15
推荐指数
2
解决办法
4万
查看次数

Dayjs 格式,带有时区缩写,即“z”,如 moment.js 中所示

尝试从Moment.js迁移到Dayjs,但我唯一无法工作的是Timezone缩写。

dayjs('2020-07-06T14:30:00.000-04:00').tz(dayjs.tz.guess()).format('Do MMM YYYY [at] HH:MMa z')
Run Code Online (Sandbox Code Playgroud)

调用上面的内容是我所期望的6th Jul 2020 at 08:07am EDT,但目前我刚刚知道它z在哪里EDT

我已经添加了utctimezone插件,但看不到完成此工作所需的任何其他插件,我注意到未列出的Dayjs格式文档z,但在网上搜索时,我看到很多人说解决方案是,format('', {timeZone})format没有不需要第二个论点吗?

看起来它已添加到tz-pluginhttps://github.com/iamkun/dayjs/pull/325/files#diff-cad460a5e46a2a48c59e95356c683820R195

这是一个包含问题示例的代码沙箱: https ://codesandbox.io/s/hungry-knuth-r58gz

- - 编辑

看起来对tzabbr 的支持已被删除:( https://github.com/iamkun/dayjs/pull/448/commits/e64c03cea79c579bcd3c4caf235b4724e56614d4

date-formatting momentjs dayjs

12
推荐指数
1
解决办法
3万
查看次数

如何模拟dayjs链式方法

我有 this dayjs 对象:

const today = dayjs.utc(date).startOf("day")

我试图用笑话来嘲笑它,但无济于事。这是我尝试过的方法:

jest.mock("dayjs", () => ({
  extend: jest.fn(),
  utc: jest.fn((...args) => {
    const dayjs = jest.requireActual("dayjs");
    dayjs.extend(jest.requireActual("dayjs/plugin/utc"));

    return dayjs
      .utc(args.filter((arg) => arg).length > 0 ? args : mockDate)
      .startOf("day");
  }),
  startOf: jest.fn().mockReturnThis(),
}));
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个:

jest.mock("dayjs", () => ({
  extend: jest.fn(),
  utc: jest.fn((...args) => ({
    startOf: jest.fn(() => {
      const dayjs = jest.requireActual("dayjs");
      dayjs.extend(jest.requireActual("dayjs/plugin/utc"));

      return dayjs
        .utc(args.filter((arg) => arg).length > 0 ? args : mockEventData)
        .startOf("day");
    }),
  })),
}));
Run Code Online (Sandbox Code Playgroud)

两者都不工作。有人有建议吗?

javascript node.js jestjs dayjs

11
推荐指数
3
解决办法
2万
查看次数

Dayjs:hm 格式持续时间的任何解决方法

我正在使用 dayjs 库的持续时间对象作为持续时间格式。

dayjs.duration(1500, 'minutes').format('H[h] m[m]') // returns 1h 0m
Run Code Online (Sandbox Code Playgroud)

图书馆似乎将 24 小时转换为 1 天,并将剩余的 1 小时转换为小时。实际上,我希望输出为25h 0m

有什么方法可以使用 days.js 或任何最小的自定义逻辑以及使用持续时间对象来实现此目的?或者任何其他库本身提供此功能?

duration angular dayjs

10
推荐指数
1
解决办法
4541
查看次数

使用dayjs的两个时间之间的差异

我有两个时间输入,我想使用 dayjs 获取这两个时间之间的差异/时间间隔

fromtime = '13:00'
totime = '17:00'
Run Code Online (Sandbox Code Playgroud)

所以上面两个的输出应该是4:00小时

我试过

fromtime = '13:00'
totime = '17:00'
Run Code Online (Sandbox Code Playgroud)

但我没有得到预期的输出。

javascript momentjs dayjs

9
推荐指数
1
解决办法
2万
查看次数

如何从 dayjs https://www.npmjs.com/package/dayjs 动态获取语言环境?

当我使用 like 时dayjs(date).locale('te').format('YYYY MMM DD'),我会得到英语的月份值。为了使用语言环境,我必须导入语言环境。

import * as locale from 'dayjs/locale/te';
Run Code Online (Sandbox Code Playgroud)

问题是我没有找到动态导入区域设置的方法。我无权访问nodejs require() 函数。我有基于反应的应用程序。如何缓解这个问题?

locale npm dayjs

8
推荐指数
3
解决办法
1万
查看次数

dayjs 未正确转换时区

我正在尝试将日期从当地时间(台北 UTC+8)转换为洛杉矶(UTC-7),但是 dayjs 转换似乎完全关闭:

dayjs("2020-09-21 20:30").tz("Asia/Taipei")
Run Code Online (Sandbox Code Playgroud)

这导致Tue Sep 22 2020 05:30:00 GMT-0400(东部夏令时间),但它应该是 Mon Sep 21 2020 02:30:00 GMT-0400(东部夏令时间)

知道发生了什么事吗?

javascript dayjs

8
推荐指数
1
解决办法
3万
查看次数

dayjs().startOf('day') 向后移动两个小时

我想解决我遇到的 dayjs 问题。现在,除了错误的时区设置之外,我对会发生什么没有任何线索和/或猜测。但同样,如果我什至没有在代码中的任何地方修改时区,那么时区如何在这里发挥作用呢?

我有一个dayjs对象,我想用它开始新的一天。当将输出打印到控制台时,我得到:

d {
  '$L': 'en',
  '$d': 2021-03-18T22:00:00.000Z,
  '$x': {},
  '$y': 2021,
  '$M': 2,
  '$D': 19,
  '$W': 5,
  '$H': 0,
  '$m': 0,
  '$s': 0,
  '$ms': 0
}
Run Code Online (Sandbox Code Playgroud)

实际上,这意味着月、日、周、小时、分钟、秒和毫秒选项设置正确(它们全部为零),但日期字段$d绝对错误(由于某种原因它向后移动了 2 小时)。如何正确更新日期?请解释一下为什么会发生这种情况,以便我将来知道如何处理。

使用node.jswithexpress.js继续运行day.jsNode版本是15.8.0 Express版本是4.17.1 Dayjs版本是1.10.4

提前谢谢了!

javascript timezone date dayjs

7
推荐指数
1
解决办法
1万
查看次数

在我的 Angular 14 应用程序中使用 dayjs 会导致优化救助警告

我对 Angular 还很陌生,在我们的项目中,我们最近切换到了 Angular 14.2.12。我们使用 moment.js 进行基于时间的计算和日期时间解析。但在切换到 Angular 14 后,由于 moment.js,我们收到了优化救助警告:

Warning: C:\Users\**\worklist\worklist.component.ts depends on 'moment'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies
Run Code Online (Sandbox Code Playgroud)

moment.js 项目本身在其项目状态页面(https://momentjs.com/docs/#/-project-status/)上建议切换到另一个更适合现代 tree-shaking 算法等的日期库。

我们决定使用 dayjs,因为它的语法似乎与 moment.js 非常相似。但是在将 dayjs 添加到我们的项目并将用法从 moment.js 切换到 dayjs 后,优化警告再次出现在日志中,现在抱怨dayjs:

Warning: C:\Users\**\worklist\worklist.component.ts depends on 'dayjs'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies
Run Code Online (Sandbox Code Playgroud)

在提到的组件中,我们像这样使用dayjs:

import dayjs from 'dayjs';
.
.
.
this.importantDate = dayjs(json.impDate, 'YYYY-MM-DD').format(DATE_FORMAT)
Run Code Online (Sandbox Code Playgroud)

我认为 dayjs 库是 ES6 …

angular dayjs

7
推荐指数
1
解决办法
1744
查看次数