【问题标题】:Managing moment.js range without timezones管理没有时区的 moment.js 范围
【发布时间】:2019-06-25 08:33:10
【问题描述】:

由于时区,我遇到了时刻范围问题! 我从返回字符串的数据库中获取事件,例如

start:"2019-02-08T12:30:00Z"
end:"2019-02-08T13:30:00Z"

当我将它放在 fullcalendar v3 中时,它会添加我的语言环境 (GMT+1),它会在日历中正确显示 (12:30),但是当我从表单中添加新日期时,fe

start:08/02/2019 - 14:30
end:08/02/2019 - 17:30

当我创建一个 moment.range 时,它​​说它重叠(相邻是真的)由于时刻调整时区! 如何在不担心时区的情况下管理事件创建?

编辑: 是的,很抱歉缺乏信息。

我正在使用这个插件: moment.range 来自:https://github.com/rotaready/moment-range

来自 bootstrap datetimepicker 的新事件日期来自:https://eonasdan.github.io/bootstrap-datetimepicker/

现在我解决了使用 utc time of moment.js 对象的问题,所以现在所有重叠都按预期工作!

【问题讨论】:

  • Moment 本身不提供范围,您是否使用插件/附加组件?哪一个?另外,请告诉我们an MCVE,说明您的问题。如前所述,我们无法确定您是在询问 FullCalendar、Moment 还是 Moment 的某些插件。
  • 如果您的时区是 GMT +1,则 2019-02-08T12:30:00Z 的当地时间是 13:30,而不是 12:30。格式为“08/02/2019 - 14:30”的日期应被视为本地日期,因为没有与之关联的时区信息,因此(假设 d/m/y 格式)它将被视为同一时刻时间为“2019-02-08T13:30:00Z”(给定您的 +1 时区)。
  • 编辑并解决了强制所有时刻使用 UTC 时间

标签: javascript date timezone momentjs moment-range


【解决方案1】:

我只是使用moment.utc() 而不是moment() 解决了我的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多