Was ist der Weg, um "Mal nur" Werte mit php?
Ich habe eine Mysql-Tabelle, die eine Spalte vom Typ TIME.
, Wenn ich rufen Sie die Werte dieser Spalte ZEIT mit PHP, wie sollte ich speichern Sie es in eine php-variable für die spätere Verwendung in meinem php-Klassen?
- Sollte ich es als string : "12:45:23"?
- Sollte ich es konvertieren zu einem Bruchteil des Tages : 0,25 06:00:00 ?
- Soll ich es konvertieren, um eine Anzahl von Sekunden : 15152 ist 04:12:32 ?
- anderen?
Ich würde gerne die standard-php-5 Umgang mit Zeit.
Dank!
UPDATE
Meine Daten in einer mysql-Tabelle vom Typ "ZEIT" und nicht "DATETIME".
Ich will einfach nur, um mit viel Zeit (eine Anzahl von Stunden, Minuten und Sekunden). das Datum ist NICHT relevant in meinem Fall so unix-timestamp oder Datum/Zeit-Objekte scheint nicht angemessen.
- ich benutze meistens den unix-timestamp
- verwenden, was funktioniert für Ihre Anwendung
- Meine Güte, mit Ausnahme einer Antwort, alle anderen Antworten sind Antworten auf eine andere Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beste und häufigste Weg, ist die Anzahl der Sekunden, wie alle php-Funktionen arbeiten in diesem format. Siehe auch: "Unix-timestamp"
Verwenden ISO 8601, die
hh:mm:ss
für ein besseres Verständnis und eine hohe readbilityIn der Regel sollten Sie immer speichern Sie eine Datum/Uhrzeit-Wert in der Datenbank native Datum/Zeit-Formate. Dies ermöglicht die Verwendung der DB-native date/time manipulation Funktionen in Abfragen. Sonst ist es nur ein Stück text, und Sie stecken mit Hilfe von string-manipulation, oder wählen Sie jedes mal, wenn Feld und Bearbeiten Sie es in Ihrem app.
SELECT unix_timestamp(datetimefield)
erzeugt eine einfache Ganzzahl-Wert, der gesetzt werden kann in den PHP-Datums - /Uhrzeit-Funktionen direkt.time_to_sec()
mysql-Funktion für diese als gut.Den unix-timestamp ist wahrscheinlich das beste für die häufigste Verwendung, da es auch kompatibel mit allen PHP-Datums - /Zeit-Funktion und ist in der Größe kleiner als ein string.
Gibt es keine "standard" - es ist wirklich hängt von Ihren Anforderungen ab.
Allerdings benötigen Sie zum speichern von Datum/Uhrzeit-Informationen in einem kanonischen format, ich würde empfehlen, mit RFC2822 (
date('r')
), da dies sicherzustellen, dass es immer korrekt ist, auch wenn sich die Zeitzone ändert sich aufgrund der Sommer-Zeit, etc. falls das relevant ist.Wenn dies nicht berücksichtigt, dann einfach mit einem Zeitstempel (einer.k.a: unixtime - der Ausgang der
time()
) können auch beweisen, genügt dies kann trivial konvertiert zwischen der nativen MySQL-datetime-format. (Verwenden Sie strtotime zu konvertieren, PHP oder verwenden Sie einfach die UNIX_TIMESTAMP oder FROM_UNIXTIME MySQL-Funktionen in der SQL-Abfrage.)Zeit ist ein Intervall, so dass Sie es speichern können, als Sekunden.
Die einzige Sache ist, die Sekunden sind nicht ein Objekt, und Sie können nicht geben, es praktische Funktionen, Sie werden auch nicht beibehalten wird, die bestimmte Anzahl von Minuten zur Verfügung gestellt.
Zum Beispiel sagen Sie, dass Sie die Verwendung von Zeit wie
45:61:59
, nach dem umwandeln in Sekunden werden Sie nicht in der Lage sein, Sie zu konvertieren zurück zu diesem format.PHP löst diese Probleme mit
DateInterval
41:61:45
gespeichert werden würde alsDas problem ist, dass
DateInterval
ist nicht so einfach zu bedienen und nützlich wie es sein könnte, also warum nicht erstellen Sie Ihre eigenen Klasse?Hier, habe ich eine erstellt nur für Sie (oder jemand auf der Suche)
(Ich weiß, ich bin spät, aber diese Frage immer noch auftaucht, hoch in den SERPs)
Nun können Sie die MySQL-Zeit und einfach tun, was Sie will.
Fühlen Sie sich frei zu Bearbeiten, und machen Sie es kürzer oder besser
Gibt es eine Menge von Optionen, die Sie haben.
PHP eine nette Funktion strtotime, dass Parsen kann sehr viele verschiedene Formate. Also, wenn Sie wollten, dass die Zeit lesbar, man kann.
Meisten Fällen, jedoch, die Zeit-format gespeichert ist, als die Anzahl der Sekunden seit dem Unix-Epoche. Spart Mühe, ständig zu analysieren, wieder.
Blick in Datum/Zeit-Klassen. Viele von Ihnen haben am meisten Ihre Nützlichkeit bei 5,3, so dass, wenn Sie stecken unten, dass Sie nicht viel helfen.