Wie um zu überprüfen, ob variable Datum oder Uhrzeit oder Datum / Uhrzeit in Ruby?
Keine einfache Möglichkeit zu überprüfen, ob eine variable /Objekt Date
/Time
/DateTime
geben? Ohne Nennung aller Arten
- Warum willst du es überprüfen? Einige von Ihnen teilen Methoden, die es Ihnen erlaubt, Sie zu benutzen, ohne zu wissen, welche Art es ist?
- Ich habe eine Rails active record, der hat 2 Attribute, sind die Zeit, ich muss
.map
konvertieren jedes Attribut, die Zeit ist datetime. Wäre toll, dass auch in Zukunft die Art der Zeit geändert haben könnte, in der DB, deshalb die Frage.. aber ich denke, ich bin gerade ein bisschen neugierig jetzt... - Neugierig warum der downvote? .. Gibt es eine Möglichkeit, die Menschen zu Fragen, wer downvoted? Ich muss jemanden wütend in diesem
forum
- Nein, Sie können nicht Fragen, warum jemand nach unten gestimmt, es... Don ' T let it get to you, ich bin verwirrt, eine Menge der Zeit, die Menschen nach unten Stimmen, die Dinge wie gut. Sie fragte eine einfache Frage und bekam gleich auf den Punkt... jemand, der nicht mag, der Stil ( d.h. Sie wollen ein ziehen Grund, warum Sie nur gebeten, Ihre Frage. nicht nötig IMO) könnte nach unten gestimmt es. Aber wie andere schon angemerkt die
. instance_of?
oder.class
ist wahrscheinlich die beste Lösung zu finden, die Klasse eines Objektes in Ruby. GL mit deiner Arbeit!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andere Möglichkeit:
d.respond_to?(:strftime)
können Sie überprüfen die Klasse von einem Objekt zu tun
Sollte es wieder Datum, String oder was auch immer es ist. Sie können auch Umgekehrt Vorgehen und überprüfen, ob ein Objekt eine Instanz einer Klasse:
wo Klasse ist, die Sie überprüfen möchten (String, Date) Rückgabe von true/false
Wenn Sie überprüfen möchten, ob das Objekt, hier ein paar Beispiele:
Ich denke auch, dass die Zeitzone von Schienen und nicht von Ruby.
Wie pro Ihren Kommentar, wenn Sie möchten, zu konvertieren, ein Zeit-Objekt DateTime-ich denke, dass so etwas wie dieses sollte es funktionieren:
Hier haben Sie einige code:
Hier haben Sie einige interessante info In Ruby on Rails, was ist der Unterschied zwischen DateTime, Timestamp, Datum und Uhrzeit?
Ich glaube nicht, dass es einen "einfachen Weg" ohne die Eingabe aller Art-Variationen von
Date
/Time
/DateTime
/Timezone
aus.Der einfachste und Schnellste Weg ist, zu tun
dateTime.is_a?(DateTime)
oderTime.is_a?(Time)
, wiederholen ad nausem - die alle werden das es ein boolean zurückgibt.Umgekehrt können Sie auch
kind_of?.
Könnten Sie auch in der Lage sein, einen Rahmen zu finden, der hat eine Funktion, um zu überprüfen, alle Variationen von Datum und Uhrzeit.
Zu finden, welche Klasse das Modul (oder Methode) liegt, verwenden Sie die
.class
- Funktion, dies ermöglicht Ihnen Einblick in die Ruby-Objekte, um herauszufinden, welche Klasse Sie sich befindet. Die syntax dafür sieht wie folgt aus:object.class
. Hier einige Beispiele:Wie Sie sehen können ist dies eine einfache und einfache Weise zu finden, die Klasse, das Objekt ist in.
Der Spalte Objekte zurückgegeben werden, die durch Spalten und columns_hash können dann verwendet werden, um Informationen wie den Datentyp und die default-Werte, zum Beispiel:
(Quelle)
Zur Vervollständigung, eine andere Möglichkeit wäre:
Hässliche, aber wahre Lösung:
Und zu testen:
Überprüft er, ob alle 4 (einschließlich der Schienen Zeitzone)
Date
oderTime
im Namen, z.B.NotADate
oderTimeline
.