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.
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
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"
Sie können die aktuelle Uhrzeit auch mit "Time.now" abrufen. In diesem Fall gibt es jedoch die folgenden Unterschiede.
config / application.rb
festgelegten Zeitzone ab, aber die aktuelle Zeit basierend auf der Umgebungsvariablen oder der Systemzeitzone, also * * Es besteht die Sorge, dass die Zeit erheblich anders sein wird **.Da Sie die Methode der TimeWizhZone-Klasse verwenden können, scheint es gut, sie hier abzurufen.
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
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)
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
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)
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
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.
Recommended Posts