9 Stimmen

Ruby Datum vor 1 Monat in String

Ich muss das Datum 1 Monat von heute in Ruby berechnen und in ein String-Format umwandeln:

jjjj-dd-mmThh:MM:ss (zum Beispiel 2014-08-26T00:00:00)

Ich habe es versucht: (DateTime.now - Date.today.prev_month).to_datetime.strftime("%FT%T") aber ich bekomme eine Methode existiert nicht Ausnahme.

7voto

dax Punkte 10505

Versuchen Sie es mit:

require 'date'

d = Date.today.prev_month # or Date.today.next_month, depending what you want
 => # 
d.strftime("%FT%T")
 => "2014-12-27T00:00:00"

2voto

Michael Durrant Punkte 88734

Probieren Sie das:

2.0.0-p247 :004 > require 'date'
 => false 
2.0.0-p247 :005 > Date.today.prev_month
 => # 
2.0.0-p247 :006 > Date.today.prev_month.to_s
 => "2014-10-27" 
2.0.0-p247 :008 > Date.today.prev_month.strftime("%F%T")
 => "2014-10-2700:00:00" 
2.0.0-p247 :009 >

1voto

shivam Punkte 15427

Versuchen Sie dies:

(DateTime.now - 1.month).strftime("%FT%T").to_s

PS: Ich bin sicher, dass dies gut mit Rails funktioniert. Bitte bestätigen Sie, ob es auch unabhängig in Ruby funktioniert?

AKTUALISIERUNG:

Wie im untenstehenden Kommentar festgestellt, wird dies nur funktionieren, wenn Sie die activesupport Bibliothek haben

0voto

Shannarra Punkte 448

UPDATE 2021

Sie können dies für Einfachheit schreiben:

1.Monat.her.beginning_of_month.to_s

# Oder

1.Monat.her.end_of_month.to_s

0voto

Croata Punkte 1

Wenn Sie keinen Zugriff auf ActiveSupport, Date oder DateTime haben, können Sie etwas Ähnliches wie dies für vor 30 Tagen verwenden:

(Time.now - 60*60*24*30).strftime("%FT%T")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X