gpt4 book ai didi

javascript - 时刻时差不会使用时刻时区,而是用户计算机时间

转载 作者:行者123 更新时间:2023-11-30 11:09:45 24 4
gpt4 key购买 nike

我正在尝试显示某项内容的持续时间代码。开始时间总是在伦敦时间。它非常适合英格兰/同一时区的人,但是当其他时区的人查看持续时间时,它会显示错误的值(如果你在英格兰后面的时区 => 负值/太小的值,时区提前 = > 值太大)。

我的解决方案是使用 moment-timezone。我正确地添加了时区数据我试图使用这个时区数据(代码简化并分成单独的行以便于阅读):

let londonTimeNow = moment().tz('Europe/London'),
jobStartTime = moment(job.start, 'DD/MM/YYYY HH:mm:ss'),
diff = londonTimeNow.diff(jobStartTime);
duration = moment.duration(diff).format('HH:mm:ss', {trim: false});

我希望这会得到伦敦的当前时间,并与开始时间进行比较,无论您身在世界何处。但是,diff 函数似乎将时间转换为用户的计算机时间。我尝试将 londonTimeNow 格式化为字符串,但 diff 函数不起作用。请注意,我已经调试并且 moment().tz() 工作正常,我已经尝试使用其他时区并在指定时区获得正确的时间。

有什么想法吗?

编辑:看来我可以通过手动将“londonTimeNow”的偏移属性设置为 0 来使其工作。但是,这对我来说不太合适。我更喜欢看起来不太像 hack 的解决方案。

最佳答案

您应该以与使用相同时区声明伦敦时间相同的方式指定作业开始时间:

jobStartTime = moment.tz(jobStart, 'DD/MM/YYYY HH:mm:ss','Europe/London'),

这将使用相同的时区设置作业开始时间。

关于javascript - 时刻时差不会使用时刻时区,而是用户计算机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54180696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com