提问人:gb992 提问时间:10/27/2023 最后编辑:gb992 更新时间:10/27/2023 访问量:41
Dayjs - 与在托管服务器上运行的日期相比,本地日期不同
Dayjs - date is different locally compared to running on a hosted server
问:
我正在将字符串(样式为“THU 04 JUL 2024”)格式化为日期字符串,然后在对数据库的查询中使用该日期。
这是代码:
const groupDate = "THU 04 JUL 2024"
const myDate = dayjs(groupDate, 'Do MMM YYYY').format()
// local server output: 2024-07-04T00:00:00+01:00 (correct)
// production server output: 2024-07-04T00:00:00+00:00 (incorrect)
我需要它来使用伦敦时区,具体取决于日期是 BST 还是 GMT(例如,7 月的日期为 +1,1 月的日期为 +0)。
我尝试使用 utc 和 timezone 插件,但它将日期转换为前一天的晚上 11 点,例如dayjs(myDate, 'Do MMM YYYY').utc().format() // 2024-07-03T23:00:00Z
这里的任何帮助都会很棒,谢谢
编辑
多亏了评论中@Spender的帮助,让我走上了正确的道路。问题是因为转换为 UTC 时,伦敦的“THU 04 JUL 2024”出现在 2024-07-03T23:00:00Z。
以下是工作代码:
const dayjs = require('dayjs')
const utc = require("dayjs/plugin/utc")
dayjs.extend(utc)
----
const groupDate = "THU 04 JUL 2024"
const myDate = dayjs(groupDate, 'Do MMM YYYY').format();
const _utcOffset = myDate.slice(-6); // gets the offset in time from utc
dayjs(myDate).utcOffset(_utcOffset).format() // formats it, ignoring the original offset
我可能没有很好地解释这一点,但它有效。
答: 暂无答案
评论
2024-07-03T23:00:00Z
validFrom: '2024-07-04T00:00:00+01:00'