gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中格式化日期和/或时间输入?

转载 作者:行者123 更新时间:2023-12-04 05:34:35 27 4
gpt4 key购买 nike

这个问题几乎与此相同:

  • Rails date format in form field

  • 除了最佳答案对我不起作用。我是 Ruby 和 RoR 的新手,所以我不确定我到底在做什么。这是我到目前为止所拥有的。

    我在 en.yml 中添加了默认日期和时间格式:
    en:
    date:
    formats:
    default: '%d.%m.%Y'
    time:
    formats:
    default: '%H:%M'

    我还使用以下代码添加了一个新的初始化程序:
    Date::DATE_FORMATS[:default] = '%d.%m.%Y'
    Time::DATE_FORMATS[:default] = '%H:%M'

    当我去 Rails 控制台并做 Time.now.to_sDate.today.to_s我得到正确的结果。例如,当从数据库中获取并显示在模型索引页面上时,它们也能正确显示。

    但是,当我尝试创建带有一些日期和时间字段(不是日期时间!)的表单时,我得到了很好的旧 YYYY-MM-DD用于日期和整个 YYYY-MM-DD HH:mm:ss.nnnnnn时间。

    正确格式化这些输入值的最佳做法是什么?我想避免更改 View 中的任何内容(就像它已完成 here ),并正确解决此问题 - 在应用程序级别 - 如果可能的话。

    最佳答案

    这就是我最终做的:

    首先,我在模型中定义了一个自定义字段:

      attr_accessible :entry_date_formatted

    def entry_date_formatted
    self.entry_date.strftime '%d.%m.%Y' unless self.entry_date.nil?
    end

    def entry_date_formatted=(value)
    return if value.nil? or value.blank?
    self.entry_date = DateTime.strptime(value, '%d.%m.%Y').to_date
    end

    然后我改变了我的表格 entry_dateentry_date_formatted :
    <%= form.text_field :entry_date_formatted, :placeholder => 'Date' %>

    最后但并非最不重要的一点是,我已将相关字段添加到我的语言环境文件中:
    en:
    activerecord:
    attributes:
    time_entry:
    entry_date_formatted: Entry date
    start_time_formatted: Start time
    end_time_formatted: End time

    这可能不是最好的方法,但它现在对我很有用。

    关于ruby-on-rails - 如何在 Ruby on Rails 中格式化日期和/或时间输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128987/

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