【发布时间】:2019-08-31 18:14:53
【问题描述】:
Rails 拥有一个“时间”属性(由用户选择)的最佳方式是什么?该属性应该始终显示为相同的“静态”时间值?
(意思:它应该始终显示相同的时间,例如“14:00”,完全独立于任何用户的时区和/或 DST 值。)
到目前为止,我已经尝试了以下设置:
- 在 MySQL 数据库中,我使用
time类型的字段(即格式为:14:00:00) - 在 Rails 视图中,我使用 helper
time_select(因为它真的很方便)
但是,通过这种方法,Rails 的 ActiveRecord 会将此时间值视为成熟的 Ruby Time 对象,因此将值 (14:00:00) 转换为默认时区(通常设置为'UTC') 用于存储,然后将其转换回用户的时区,以供查看。而且如果我没记错的话,这也意味着波动的 DST 值会使显示的时间值全年波动(如果用户移动到另一个时区也会发生同样的情况)。
那么使用 Rails 管理简单的“静态”时间属性的最佳方法是什么?
【问题讨论】:
标签: ruby-on-rails time timezone