【问题标题】:get time left until @post.created_at in seconds以秒为单位获得直到@post.created_at 的剩余时间
【发布时间】:2012-03-31 19:12:29
【问题描述】:

寻找一种方法来获取直到@post.created_at 日期时间与时区的秒数。 使用 DateTime.now.in_time_zone 获取当前日期和时间。我可以使用 ruby​​ 时间助手,但我真的只需要几秒钟。

有 distance_of_time_in_words 但没有 distance_of_time_in_seconds 助手

  • 您将如何计算某个 @post.created_at 的秒数?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 timezone


    【解决方案1】:

    一个简单的

    @post.created_at - Time.now
    

    ..会给你几秒钟。您不必担心时区,因为 Rails 会在计算差异之前处理时区(因为两者都是带有时区详细信息的对象)。

    【讨论】:

    • (@post.created_at - Time.now).seconds 将以秒为单位返回时间。
    • @scarver2..好吧,@post.created_at - Time.now 会给你浮动的答案,而.seconds 会在末尾添加一个seconds。我认为没有必要这样做,除非你打算用这个时间差做进一步的计算,比如Time.now + difference(在这种情况下,没有秒的也可以工作,因为a time object + a number给你的结果与考虑的数字相同秒)
    【解决方案2】:
    (Time.now.in_time_zone - @post.created_at.in_time_zone).to_i
    

    将以秒为单位返回差值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 2021-05-31
      • 2013-02-28
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      相关资源
      最近更新 更多