我怎么能得到昨天的date?

我怎样才能得到昨天的date?

也许:

@get_time_now = Time.now.strftime('%m/%d/%Y') / 86400 

要么

 @get_time_now = Time.now.strftime('%m/%d/%Y') - 1.day 

要么

 @get_time_now = Time.now. / 86400 

86400 = 1天,对吧? (60 * 60 * 24)

对于date对象,您可以使用:

 Date.yesterday 

或者一个时间对象:

 1.day.ago 

或者在铁轨之外:

 Date.today.prev_day 

在尝试1.day.ago和变体之后:

 irb(main):005:0> 1.day.ago NoMethodError: undefined method `day' for 1:Fixnum 

如果发现Date.today.prev_day适合我:

 irb(main):016:0> Date.today.prev_day => #<Date: 2013-04-09 ((2456392j,0s,0n),+0s,2299161j)> 
 Time.now - (3600 * 24) # or Time.now - 86400 

要么

 require 'date' Date.today.prev_day 

使用Date.today – 1.days。

Date.yesterday取决于当前时间和GMT的偏移量

 1.9.3-p125 :100 > Date.today => Wed, 29 Feb 2012 1.9.3-p125 :101 > Date.yesterday => Wed, 29 Feb 2012 1.9.3-p125 :102 > Date.today - 1.days => Tue, 28 Feb 2012 

使用DateTime.now – 1

 1.9.3p194 :040 > DateTime.now => Mon, 18 Nov 2013 17:58:45 +0530 1.9.3p194 :041 > DateTime.now - 1 => Sun, 17 Nov 2013 17:58:49 +0530 

或DateTime.yesterday

 1.9.3p194 :042 > DateTime.yesterday => Sun, 17 Nov 2013 

或者我们可以使用TimeDateTime Time rails advance方法

 1.9.3p194 :043 > Time.now.advance(days: -1) => 2013-11-17 17:59:36 +0530 1.9.3p194 :044 > DateTime.now.advance(days: -1) => Sun, 17 Nov 2013 17:59:49 +0530 

advance方法也提供了这个选项:years, :months, :weeks, :days, :hours, :minutes, :seconds

DateTime提前方法

时间提前量法

您可以从Time对象中减去86400以获得前一天。 如果您使用的是Rails,或者包含ActiveSupport,则可以使用1.daysreplace86400。

如果您使用的是Date对象,而不是Time对象,只需从中减去1即可。

要检查一个date/时间是否在另一个之前,只需比较两个对象,就像您对数字所做的那样:

 DateTime.parse("2009-05-17T22:38:42-07:00") < DateTime.parse("2009-05-16T22:38:42-07:00") # => false 

Ruby 2.1.2本地时间

回答:

 Time.at(Time.now.to_i - 86400) 

certificate:

 2.1.2 :016 > Time.now => 2014-07-01 13:36:24 -0400 2.1.2 :017 > Time.now.to_i => 1404236192 2.1.2 :018 > Time.now.to_i - 86400 => 1404149804 2.1.2 :019 > Time.at(Time.now.to_i - 86400) => 2014-06-30 13:36:53 -0400 

一天秒。

86400 = 1天(60 * 60 * 24)