获取最后一个 UTC 午夜 unix 时间戳的最佳方法

The best way to get the last UTC midnight unix timestamp

我需要知道发生在伦敦的最后一个午夜的时间戳,而不管我运行此代码所在的时区。

require "date"
Date.today.to_time.to_i

好像到了当地的午夜。

year = Time.now.utc.year
month = Time.now.utc.month
day = Time.now.utc.day
Time.utc(year, month, day).to_i

更多信息:https://ruby-doc.org/core-2.3.0/Time.html#method-c-utc

这会如你所愿吗?

Time.now.utc.midnight.to_i

Time.now 获取当前本地时间,#utc 将其设置为 UTC,#midnight 将其设置为前一个午夜,#to_i 将其转换为时间戳。希望对您有所帮助!

https://ruby-doc.org/core-2.3.0/Time.html

因为 UNIX 时间戳每天增加 86400,您可以通过以下方式计算午夜:

Time.now.utc.to_i / 86400 * 86400
#=> 1473984000

或者:

t = Time.now.utc.to_i
#=> 1474011313

t - t % 86400
#=> 1473984000