Wie kann ich das gestrige Datum bekommen?
vielleicht:
@get_time_now = Time.now.strftime('%m/%d/%Y') / 86400
oder
@get_time_now = Time.now.strftime('%m/%d/%Y') - 1.day
oder
@get_time_now = Time.now. / 86400
86400 = 1 Tag, richtig? (60 * 60 * 24)
ruby-on-rails
ruby
Michael Gorsky
quelle
quelle
Antworten:
Schienen
Für ein Datumsobjekt können Sie Folgendes verwenden:
Oder ein Zeitobjekt:
1.day.ago
Rubin
Oder außerhalb von Schienen:
quelle
Nach dem Ausprobieren
1.day.ago
und Varianten davon:irb(main):005:0> 1.day.ago NoMethodError: undefined method `day' for 1:Fixnum
Wenn gefunden,
Date.today.prev_day
funktioniert das für mich:irb(main):016:0> Date.today.prev_day => #<Date: 2013-04-09 ((2456392j,0s,0n),+0s,2299161j)>
quelle
Date.today - 1
Time.now - (3600 * 24) # or Time.now - 86400
oder
require 'date' Date.today.prev_day
quelle
Time.now - (3600 * 24)
Time.now - (3600 * 24)
ist nicht gestern. Nicht alle Tage haben 24 Stunden.Ruby 2.1.2 Native Time
Antworten:
Time.at(Time.now.to_i - 86400)
Beweis:
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
Ein Tag von Sekunden.
86400 = 1 Tag (60 * 60 * 24)
quelle
Verwenden Sie Date.today - 1.days.
Date.yesterday hängt von der aktuellen Uhrzeit und Ihrem Offset von GMT ab
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
quelle
benutze 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
oder DateTime.yesterday
1.9.3p194 :042 > DateTime.yesterday => Sun, 17 Nov 2013
oder wir können
rails
advance
Methode fürTime
und verwendenDateTime
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
Methode bietet auch diese Optionen:years, :months, :weeks, :days, :hours, :minutes, :seconds
DateTime-Vorabmethode
Zeitvorlaufmethode
quelle
Sie können einfach 86400 von einem
Time
Objekt subtrahieren , um es einen Tag zuvor zu erhalten. Wenn Sie Rails verwenden oder ActiveSupport enthalten ist, können Sie 86400 durch ersetzen1.days
.Wenn Sie ein
Date
Objekt und keinTime
Objekt verwenden, subtrahieren Sie einfach 1 davon.Um zu überprüfen, ob ein Datum / eine Uhrzeit vor / nach dem anderen liegt, vergleichen Sie einfach die beiden Objekte wie bei Zahlen:
DateTime.parse("2009-05-17T22:38:42-07:00") < DateTime.parse("2009-05-16T22:38:42-07:00") # => false
quelle