[RUBY] Eine Sammlung von Methoden, die häufig beim Bearbeiten der Zeit mit TimeWithZone of Rails verwendet werden

Ich habe oft die Rails-App verwendet, um den Preis für einen bestimmten Zeitraum zu berechnen und mit der Zeit zu spielen, um ihn zu überprüfen, aber ich war beeindruckt, dass es ziemlich einfach war, die gewünschte Zeit zu erhalten, also habe ich sie zu diesem Zeitpunkt verwendet. Die Zeitmanipulationsmethoden werden anstelle eines Memorandums zusammengefasst.

Was ist Time oder TimeWithZone überhaupt?

Ich werde es vorstellen, weil es im folgenden Artikel ausführlich geschrieben wurde. Zusammenfassend lässt sich sagen, dass die Verwendung von TimeWithZone bei der Verwendung mit Rails große Fortschritte macht. Dieser Artikel basiert auf der Annahme, dass diese Klasse verwendet wird. Unterschiede zwischen Zeit, Datum, DateTime, TimeWithZone zwischen Ruby und Rails \ -Qiita

Holen Sie sich die aktuelle Zeit

Super einfaches Zeiterfassungssystem. Im Moment ist es einfach. Ich denke, dass es basierend darauf oft in verschiedene Formen umgewandelt wird.

#Holen Sie sich die aktuelle Zeit
Time.current
=> Wed, 15 Jan 2020 13:18:07 UTC +00:00

#Klasse prüfen
Time.current.class
=> ActiveSupport::TimeWithZone

#In Zeichenfolgentyp konvertieren
Time.current.strftime("%F")
=> "2020-01-15"

Tipps: Unterschied zu Time.now

Sie können die aktuelle Uhrzeit auch mit "Time.now" abrufen. In diesem Fall gibt es jedoch die folgenden Unterschiede.

Da Sie die Methode der TimeWizhZone-Klasse verwenden können, scheint es gut, sie hier abzurufen.

Holen Sie sich den Tag vor oder am nächsten Tag

Ich möchte die Daten von gestern und die Daten des nächsten Monats abrufen, aber auf dieser Ebene ist es praktisch, weil ich sie wie unten gezeigt auf einmal bringen kann.

#gestern
Time.current.yesterday

#nächster Tag
Time.current.tomorrow

#Im vergangenen Monat
Time.current.prev_month

#Nächsten Monat
Time.current.next_month

#Anfang des Monats
Time.current.beginning_of_month

#Ende des Monats
Time.current.end_of_month

#Vorheriges Jahr
Time.current.prev_year

#nächstes Jahr
Time.current.next_year

Holen Sie sich Zeit N Tage, N Monate, N Jahre

Wenn Sie es an einem beliebigen Datum oder Monat ändern möchten, können Sie es wie folgt erhalten.

#vor 3 Tagen/3 Tage später
Time.current.ago(3.days)
Time.current.since(3.days)

#vor 3 Monaten/3 Monate später
Time.current.ago(3.month)
Time.current.since(3.month)

#Vor 3 Jahren/3 Jahre später
Time.current.ago(3.years)
Time.current.since(3.years)

Holen Sie sich das Datum und den Tag

Bei der Berechnung der Anzahl der Tage kann jede Anzahl wie folgt schriftlich eingegeben werden. Der Typ zu diesem Zeitpunkt ist der grundlegende int-Typ.

#Jahr
Time.current.year
=> 2020

#Mond
Time.current.month
=> 6

#Datum
Time.current.day
=> 7

Zeitunterschied

Das Subtrahieren von TimeWithZone gibt UNIXTIME (Sekunden) zurück. Wenn Sie dies mit Time.zone.at konvertieren, können Sie es verwenden, wenn Sie das Datum usw. aus der Differenz zwischen zwei Datums- und Uhrzeitangaben ermitteln möchten.

#Konvertieren Sie die Zeit von der Einstellung in TimeWithZone
time1 = Time.zone.parse('2020-01-05 12:00:00')
time2 = Time.zone.parse('2020-01-01 10:00:00')

#Subtrahieren, um UNIXTIME zu erhalten (Sekunden)
time1 - time2
=> 352800.0

#Konvertieren Sie Sekunden in TimeWithZone
Time.zone.at(time1 - time2)

Holen Sie sich jederzeit

Es wird verwendet, wenn Sie Daten erfassen möchten, die an einem bestimmten Datum in einem Test generiert wurden.

Time.zone.parse('2020-01-01')
=> Wed, 01 Jan 2020 00:00:00 UTC +00:00

Time.zone.parse('2020-01-01 12:00:00')
=> Wed, 01 Jan 2020 12:00:00 UTC +00:00

#Erstellen Sie eine neue TimeWithZone basierend auf der aktuellen Zeit
Time.zone.parse("#{Time.current.strftime('%F')} #{Time.current.hour}:00:00")
=> Wed, 15 Jan 2020 13:00:00 UTC +00:00

Zusammenfassung

Bevor ich es berührte, war ich ein wenig schwach darin, die Zeit zu kontrollieren, aber ich lernte mehr, indem ich es berührte. Wenn es andere bequeme Betriebsmethoden gibt, die durchgeführt werden können, werde ich sie hinzufügen.

Artikel, die ich als Referenz verwendet habe

Recommended Posts

Eine Sammlung von Methoden, die häufig beim Bearbeiten der Zeit mit TimeWithZone of Rails verwendet werden
Liste der Methoden zur Bearbeitung von Zeichenfolgen
Ruby-Methoden, die häufig in Rails verwendet werden
RSpec-Sammlung, die ich häufig verwendet habe
Eine Sammlung von Methoden, um in der Hash-Tag-Suche eingegebene Zeichen durch ein angenehmes Gefühl zu ersetzen
Eine Überprüfung des von Rails-Anfängern verwendeten Codes
[Schienen] Vorsichtsmaßnahmen beim Vergleich von Datum und Uhrzeit mit DateTime
Eine Sammlung von Befehlen, die häufig in Heroku verwendet werden
Achten Sie bei der Verwendung von MessageEncryptor mit Rails 5.2 / 6.0 auf den Zeitpunkt der Initialisierung
Zusammenfassung der ersten Arbeiten beim Erstellen einer App mit Rails
Eine Reihe von Schritten zum Erstellen von Ergebnissen für Portfolios mit Rails
Vorhandene Datensätze verschwinden beim Erstellen des has_one-Modells (Rails).
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
[Rails] Vermeiden Sie das SELECT, das beim Erstellen eines Modells mit Gehört_zu Definiert ausgegeben wird!
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
Benennungsregeln beim Erstellen neuer Controller und Modelle mit Schienen