2

我需要在变量中获取三个日期

今天从午夜开始,我有

t = Time.now.strftime("%Y-%m-%d 00:00:01") # 2012-11-19 00:00:01

昨天从午夜开始(即 00:00:00 到 23:59:59)

y1 = 2012-11-18 00:00:01
y2 = 2012-11-19 23:59:59

特别是我需要创建为字符串以在 gem 中使用的 y1 和 y2 变量。作为 ruby​​ 的新手,我有点困惑,因为 Time.yesterday 似乎没有做我需要的事情

编辑

为此,请务必包括

需要'active_support/all'

并确保为您的应用程序捆绑了 gem。

用过的:

@current   = (Time.now).beginning_of_day.utc.strftime("%Y-%m-%d")
@yesterday = (Time.now - 1.day).beginning_of_day.utc.strftime("%Y-%m-%d")
@everything = (Time.now - 2.day).end_of_day.utc.strftime("%Y-%m-%d")
4

4 回答 4

4

你可以做,

 t=Time.now
 y1=t-1.day
 y2=t+1.day
于 2012-11-19T12:33:54.250 回答
2
t = Time.now
t - 1.day # => yesterday
t + 1.day # => tomorrow
于 2012-11-19T12:08:55.237 回答
1

首先将 t 转换为日期,

t = t.to_date

t - 1.day # => yesterday
t + 1.day # => tomorrow
于 2012-11-19T12:36:47.563 回答
0

由于您正在运行 Rails,因此可以从ActiveSupport获得帮助

1.day.ago.midnight
Time.new.beginning_of_day

您还应该考虑不使用2012-11-19 00:00:01or 2012-11-19 23:59:59。相反,您可以使用 00:00:00 并根据您想要实现的目标与 >= 或 < 进行比较。如果你总是四舍五入到秒,那么2012-11-19 00:00:00就可以了2012-11-19 23:59:59

于 2012-11-19T13:23:30.787 回答