我有一个时间戳
timestamp = Time.now.utc.to_f
我需要找到同一天 UTC 午夜的时间戳:
t = Time.at timestamp
Time.at(((t - t.hour * 3600).to_f / 3600).to_i * 3600).to_f
有没有办法在不必将原始 timestamp
转换为 Time
对象的情况下获得相同的时间戳?以类似于将时间戳四舍五入到最近一小时的方式:
(timestamp / 3600).to_i * 3600
最佳答案
由于 UTC 时间戳从 1970 年 1 月 1 日的 午夜 UTC 开始,只需执行以下操作:
timestamp - timestamp % (3600*24)
这将为您提供世界标准时间最后一个午夜的时间戳。
要针对您的时区进行调整,只需在计算模数之前添加或删除相应的小时数,然后添加或删除它们以获得相应的 UTC 时间戳。
关于ruby - 时间戳最近午夜的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929575/