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


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

@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")

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.


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

1
Gerade bemerkte den ruby-on-Schienen - Tag, so dass ich denke , Sie sind glücklich Active zu verlangen :)
Jon M


1

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


0

Herausgefunden. Das funktioniert:

DateTime.now.in_time_zone.midnight
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.