【发布时间】:2012-02-06 07:46:43
【问题描述】:
我有一个 sinatra 应用程序,其中有一条小消息,我想说“DayOfWeek”快乐,但是我注意到它没有显示页面的正确日期,它会打印前一天。 代码极其简单:
<%= "Happy #{Time.now.strftime("%A")}" %>
我认为这与请求响应周期有关,但我切换了浏览器,在 chrome、firefox 和 safari 中遇到了同样的问题。有人知道发生了什么吗?
【问题讨论】:
-
你确定这是
strftime搞砸了吗?还是Time.now也显示昨天的日期?此外,您还缺少一个结束)。 -
您可能遇到了时区问题。
-
好的,所以我在生产代码和本地机器上都打印了 Time.now,这就是我所拥有的:Time.now in development 将打印我的本地时间,(EST)但是在生产时间。现在是打印太平洋时间。我假设这是由于该站点在西海岸托管,因此获得了托管位置的时间。
-
您是否总是希望显示特定时区 (EST)?还是访问者的当地时间?如果是前者,那么您可以将
Time.now替换为(Time.now + 10800),更改值以匹配您想要的任何时间偏移量。如果是后者,那么我不确定您能找到哪种服务器端解决方案。