当我使用 Javascript 从 FullCalendar 获取日期时,我有以下值:
Fri Sep 13 2013 08:30:33 GMT-0400 (EDT)
将该日期保存到数据库后,我看到数据库中有不同的值:
2013-09-13 12:00:00.000000
因此,日期会自动转换为 UTC 并像这样保存到数据库中。如何将正确的日期保存到数据库中?我不想硬编码它:)
谢谢你。
当我使用 Javascript 从 FullCalendar 获取日期时,我有以下值:
Fri Sep 13 2013 08:30:33 GMT-0400 (EDT)
将该日期保存到数据库后,我看到数据库中有不同的值:
2013-09-13 12:00:00.000000
因此,日期会自动转换为 UTC 并像这样保存到数据库中。如何将正确的日期保存到数据库中?我不想硬编码它:)
谢谢你。
默认情况下,rails 应用程序时区是 UTC。每当保存记录时,日期、日期时间、时间字段都会与数据库的时区一起保存,但是当它们在模型中取回时,它会转换回 UTC。
因此,在您的情况下,像这样在 application.rb 中设置您的应用程序时区
config.time_zone = 'Central Time (US & Canada)'
现在,无论何时从数据库中获取记录,它都将始终转换为 CST 时区,而与 DB 时区无关。
希望这会有所帮助。
为此,您需要在 application.rb 中定义您的时区
config.time_zone = 'YOUR-TIME-ZONE'
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false