1

当我使用 Javascript 从 FullCalendar 获取日期时,我有以下值:

Fri Sep 13 2013 08:30:33 GMT-0400 (EDT)

将该日期保存到数据库后,我看到数据库中有不同的值:

2013-09-13 12:00:00.000000

因此,日期会自动转换为 UTC 并像这样保存到数据库中。如何将正确的日期保存到数据库中?我不想硬编码它:)

谢谢你。

4

2 回答 2

2

默认情况下,rails 应用程序时区是 UTC。每当保存记录时,日期、日期时间、时间字段都会与数据库的时区一起保存,但是当它们在模型中取回时,它会转换回 UTC。

因此,在您的情况下,像这样在 application.rb 中设置您的应用程序时区

config.time_zone = 'Central Time (US & Canada)'

现在,无论何时从数据库中获取记录,它都将始终转换为 CST 时区,而与 DB 时区无关。

希望这会有所帮助。

于 2013-09-13T05:41:55.763 回答
2

为此,您需要在 application.rb 中定义您的时区

config.time_zone = 'YOUR-TIME-ZONE'
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false
于 2013-09-13T05:44:11.820 回答