这是我的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) 我有以下代码
import dayjs from 'dayjs'
const abc = dayjs("09:00:00")
console.log(abc)
Run Code Online (Sandbox Code Playgroud)
控制台中的 abc 是
我怎样才能使它成为一个有效的日期,条件是输入始终采用“09:00:00”格式
尝试从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。
我已经添加了utc和timezone插件,但看不到完成此工作所需的任何其他插件,我注意到未列出的Dayjs格式文档z,但在网上搜索时,我看到很多人说解决方案是,format('', {timeZone})但format没有不需要第二个论点吗?
看起来它已添加到tz-plugin:https://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
我有 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)
两者都不工作。有人有建议吗?
我正在使用 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 或任何最小的自定义逻辑以及使用持续时间对象来实现此目的?或者任何其他库本身提供此功能?
我有两个时间输入,我想使用 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)
但我没有得到预期的输出。
当我使用 like 时dayjs(date).locale('te').format('YYYY MMM DD'),我会得到英语的月份值。为了使用语言环境,我必须导入语言环境。
import * as locale from 'dayjs/locale/te';
Run Code Online (Sandbox Code Playgroud)
问题是我没有找到动态导入区域设置的方法。我无权访问nodejs require() 函数。我有基于反应的应用程序。如何缓解这个问题?
我正在尝试将日期从当地时间(台北 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(东部夏令时间)
知道发生了什么事吗?
我想解决我遇到的 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.js。
Node版本是15.8.0
Express版本是4.17.1
Dayjs版本是1.10.4
提前谢谢了!
我对 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 …