ich benutze PHP 5.4.6 und MySQL 5.5.29 und ich bekomme Probleme durch die Umwandlung eines UNIX TIMESTAMP in MySQL DATETIME und umgekehrt. Mysql und PHP wun auf der gleichen lokalen Maschine.PHP-MYSQL: Konvertieren von Unix Timestamp zu DateTime und umgekehrt
Ich habe eine einfache MySQL-Tabelle
CREATE TABLE Entry(
id SERIAL PRIMARY KEY,
created DATETIME NOT NULL);
Daten einzufügen Ich benutze php PDO und mysql NOW(). Dies funktioniert einwandfrei, die korrekte Datetime wird in der Datenbank gespeichert.
Mein Plan ist es, mit Unix-Timestamps auf der Client-Seite zu arbeiten (PHP & MySQL auf der Serverseite).
Also würde ich gerne Unix-Zeitstempel an meinen Kunden liefern. Daher verwende ich MySql UNIX_TIMESTAMP() -Funktion, um es direkt in der Abfrage zu konvertieren.
So eine Beispielabfrage sieht wie folgt aus:
SELECT created, UNIX_TIMESTAMP(created) AS TS FROM Entry
Das Ergebnis: erstellt = 2013.02.14 20.47.35 TS = 1360871255
So jetzt will ich das tun Andernfalls übergebe ich einen UNIX-Timestamp und möchte ihn mit den Einträgen in meiner Datenbank vergleichen. Leider kann ich kein PHP-Skript schreiben, das funktioniert. Ich weiß nicht, warum, aber wenn ich den gleichen Zeitstempel m vorbei (1360871255) zu PHP Ich habe nicht 2013.02.14 20.47.35 mit dieser Methode:
public static function toDateTime($unixTimestamp){
return date("Y-m-d H:m:s", $unixTimestamp);
}
Als ich ToDateTime nennen (1360871255) wird 2013-02-14 20:02:35 zurückgeben, was nicht die ursprüngliche DateTime ist.
Ich weiß, ich brauche nicht 1360871255 zu einem Y-m-d formatieren H: m: s in MYSQL zu verwenden, aber 1360871255 scheint nicht die Zeit zu sein, die ich erwartet (und MYSQL UNIX_TIMESTAMP zurückgegeben hat).
Was ich tun möchte, ist eine einfache Abfrage, die mir Einträge zeigt, die älter als eine bestimmte Zeitstempel sind, etwas Einfaches wie folgt aus:
SELECT * FROM Entry WHERE created < 1360871255
aber wie ich schon erwähnt, das Abfrageergebnis ist nicht die erwartete , denn 1360871255 scheint nicht die richtige Zeit zu sein.
Ich gebe keine spezielle Zeitzone für die MySQL-Verbindung in PHP.
Irgendwelche Vorschläge?
Verdammt, dein Recht ... omg ... ich bin so dumm – sockeqwe
@sockeqwe - Du bist nicht dumm. Du hast es einfach überschätzt. Es passiert. – Greeso