【问题标题】:Strftime not updating to the correct dateStrftime 没有更新到正确的日期
【发布时间】: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),更改值以匹配您想要的任何时间偏移量。如果是后者,那么我不确定您能找到哪种服务器端解决方案。

标签: ruby sinatra strftime


【解决方案1】:

Sinatra: The Classiest of PrototypesBryce Kerley 的演示文稿的第 28 张幻灯片中,您可以看到以下内容:

require 'sinatra'
require 'tzinfo'

mt = TZInfo::Timezone.get('America/New_York')

get '/time' do
  mt.now.strftime "%D %T"
end

应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多