Rails DateTime.now ohne Zeit

90

Ich muss DateTime.now verwenden, um das aktuelle Datum zu ermitteln und die Uhrzeit zu "entfernen".

Dies zeigt zum Beispiel, was ich nicht will:DateTime.now => Sat, 19 Nov 2011 18:54:13 UTC +00:00

Dies zeigt , was ich tun möchte:DateTime.now.some_operation => 2011-11-06 00:00:00 UTC

Mike
quelle
10
DateTime ohne Zeit ist Datum :) meinst du Date.today?
Ajahongir

Antworten:

173

Sie können eine der folgenden Optionen verwenden:

  • DateTime.current.midnight
  • DateTime.current.beginning_of_day
  • DateTime.current.to_date
Igor Kapkov
quelle
@sekmo begin_of_day ist Teil des aktiven Supports (Rails).
Igor Kapkov
3
Besser nicht DateTime.nowohne Zone verwenden. Es ist besser , eine der verwenden Time.zone.now, DateTime.current, DateTime.now.in_time_zone, DateTime.now.utc, DateTime.now.getlocal, DateTime.now.iso8601, DateTime.now.jisx0301, DateTime.now.rfc3339, DateTime.now.to_i, DateTime.now.to_fstatt.
Bryan Dimas
danke @BryanDimas, dein Kommentar hilft. Kann VPN Auswirkungen haben, wenn IP in andere Länder geändert wird?
Jenuel Ganawed
19

Was Sie brauchen, ist die Funktion strftime:

Time.now.strftime("%Y-%d-%m %H:%M:%S %Z")
VP.
quelle
Dies kann zu erheblichen Problemen führen, wenn Sie Daten in eine Datenbank einfügen, die %Y-%m-%d %H:%M:%Sformatierte Daten erwartet , da diese den Monats- und Tageswert invertieren
quetzaluz
Mein Vorschlag war, die Funktion strftime zu verwenden, das verwendete Format, das Sie selbst entsprechend anpassen müssen
VP.
9

Was ist mit Date.today.to_time?

Ernesto
quelle
4

Wenn Sie glücklich sind require 'active_support/core_ext', können Sie verwenden

DateTime.now.midnight # => Sat, 19 Nov 2011 00:00:00 -0800
Jon M.
quelle
1
Gerade bemerkte den ruby-on-Schienen - Tag, so dass ich denke , Sie sind glücklich Active zu verlangen :)
Jon M
2

Sie können nur verwenden:

Date.current
Evan Ross
quelle
1

Wenn Sie das heutige Datum ohne Uhrzeit wünschen, verwenden Sie einfach Date.today

LordKiz
quelle
0

Herausgefunden. Das funktioniert:

DateTime.now.in_time_zone.midnight
Mike
quelle