0

我在 ruby​​ on rails 项目中有一个功能。它可以创建具有任务名称和截止日期的特定任务。创建后它将显示任务的截止日期。

当我创建任务时,任务名称和截止日期存储在数据库中,例如:

任务名称:工作,到期日期:2013-05-15 11:06:00

它们正确地存储在数据库中。但是当您显示任务信息时,到期时间总是迟到两个小时。

它显示 2013-05-15 13:06:00 而不是 2013-05-15 11:06:00 并且显示相关代码如下

l(assigned.due_at.localtime, :format => :mmddhhss)

我不知道是什么

 l()

函数用于。如何正确设置时间。

4

2 回答 2

2

l() 方法正在本地化您特定时区的时间。

我在西班牙,所以:

l(Time.now) # I18n.l(Time.now) if you are testing trough the console

应该输出:

"martes, 07 de mayo de 2013 12:16:38 +0200"

查看字符串末尾的 +0200,它的意思是“从 UTC 时间开始加两个小时”。UTC时间是世界时,以前称为格林威治时间。

因此,您似乎正在使用 UTC 时间存储数据,然后显示时区时间与 UTC 时间相差 +2 小时。您为您的应用程序定义了哪个时区?

于 2013-05-07T10:22:26.593 回答
0

您可以使用用户strftime(),以便您可以随意格式化日期/时间。您可以将其用作参考strftime()

于 2013-05-07T10:36:46.923 回答