php addieren oder subtrahieren timezone offset
Habe ich einige Termine gespeichert in gmt in einer mysql-db.
Sagen die Kunden timezone offset war -540; wie würde ich korrigieren datetime
aus der Datenbank kommen, zu reflektieren? Ist es eine nützliche Funktion, ich kann das Datum durch, oder ich bin gehen zu müssen, addieren oder subtrahieren entsprechend.
Verwenden
Wie kann Sie das tun? Es nicht wissen, die Kunden Zeitzone sicherlich. Ich denke, es wird es tun, basierend auf der server-Zeitzone nicht? Ich bin ganz Ohr - danke.
Sie können die client-Zeitzone für jede Verbindung und mysql wird alles tun, offset-arbeiten für Sie. Es gibt Millionen Diskussionen darüber hier SO
timestamp
mysql-Datentyp und mysql machen das für SieWie kann Sie das tun? Es nicht wissen, die Kunden Zeitzone sicherlich. Ich denke, es wird es tun, basierend auf der server-Zeitzone nicht? Ich bin ganz Ohr - danke.
Sie können die client-Zeitzone für jede Verbindung und mysql wird alles tun, offset-arbeiten für Sie. Es gibt Millionen Diskussionen darüber hier SO
InformationsquelleAutor Chin | 2012-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie die Datenelemente, die in GMT-format konvertieren, um Zeit-Stempel, mit
strtotime
mehr info hier: http://php.net/manual/en/function.strtotime.phpSobald Sie die Zeit haben, den Stempel kann man subtrahiert den offset (540 mal 60 Sekunden), und dann konvertieren Sie das Ergebnis in ein neues Datums-Zeichenfolge, mit
date
mehr info hier: http://php.net/manual/en/function.date.phpHier ist eine version des Codes, konnte zu diesem:
Ich denke, wir sind auf dem richtigen Weg mit diesem. Aber der code oben dauert von 9 Minuten nicht 9 Stunden.
Von der Spitze von meinem Kopf, ich muss sagen, eine con wäre die Tatsache, dass die Anzeige überall in Ihrem Projekt haben, konvertieren müsste den Zeitstempel für Datum-strings, aber ich kann nicht denken, der andere Nachteile. Profis, können Sie Sortieren die Zeilen nach Datum sehr leicht, da die Zeitstempel sind im Grunde zahlen. Und Sie können relative Berechnungen zu erleichtern, wie in deiner ersten Frage. Hoffe, das hilft.
Wenn Sie sagen, es dauert 9 Minuten, statt 9 Stunden, können Sie den offset durch die Verwendung von strtotime wieder, wie dieses: $offset = strtotime("-9 Stunden"), Und subtrahieren Sie diesen Wert von der ursprünglichen Zeitstempel. Lassen Sie uns wissen, wenn es funktioniert
Danke Romi. Endete damit, dass dieser - 540*60; ich werde markieren Sie diese korrigieren.
InformationsquelleAutor Romi Halasz
Vielleicht diesem Snippet wird Ihnen helfen:
Siehe auch http://www.php.net/manual/en/class.datetime.php für weitere Lesungen.
InformationsquelleAutor Julian Hollmann