gpt4 book ai didi

Formtastic 的日期时间选择与用户特定的时区

转载 作者:行者123 更新时间:2023-12-03 16:41:32 25 4
gpt4 key购买 nike

我们有一个 MongoDB 事件记录集合,其中包含以 UTC 格式保存的 scheduled_at 日期时间字段。每个用户都有一个特定的时区,我们将其应用于前端的时间戳。

我不知道如何让 formtastic 的日期时间选择在编辑给定事件记录时尊重用户的时区。代码片段如下所示:

f.input :scheduled_at, :as => :datetime, :input_html => { :value => event.scheduled_at.in_time_zone(Time.zone) }

看起来我无法以这种方式覆盖字段的值; scheduled_at 下拉列表仍然只显示 UTC,而不是正确的 Time.zone。有谁知道正确的做法是什么?

最佳答案

在我的例子中,我需要一个 DateSelectInput 来显示 UTC 时间(长话短说,用于遗留支持)。做到这一点的唯一方法是创建一个输入,在您的情况下继承自 DateTimeSelectInput(在我的情况下为 DateSelectInput)。这是因为 Timeish 直接从表单对象获取值:https://github.com/justinfrench/formtastic/blob/3.1.3/lib/formtastic/inputs/base/timeish.rb#L159 (至少在最新版本上)

这是我的代码,但您明白了要点,只需更改值并将其自身呈现为父类,以便所有 CSS 和其他内容按预期工作。

class UtcDateSelectInput < Formtastic::Inputs::DateSelectInput
def value
super.utc if super.respond_to? :utc
end

def as
'date_select'
end
end

关于Formtastic 的日期时间选择与用户特定的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962524/

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