im usando php 5.4.6 e MySQL 5.5.29 e ottengo problemi convertendo UNIX TIMESTAMP in MYSQL DATETIME e viceversa. Mysql e php wun sulla stessa macchina locale.PHP-MYSQL: conversione di Unix Timestamp in DateTime e viceversa
Ho una semplice tabella MySQL
CREATE TABLE Entry(
id SERIAL PRIMARY KEY,
created DATETIME NOT NULL);
Per inserire i dati che uso php mysql DOP e NOW(). Funziona bene, il datetime corretto è memorizzato nel database.
Il mio piano è di lavorare con timestamp unix sul lato client (php & mysql sul lato server).
Quindi mi piacerebbe consegnare timestamp unix al mio cliente. Pertanto utilizzo la funzione MySql UNIX_TIMESTAMP() per convertirla direttamente nella query.
Quindi una query di esempio si presenta così:
SELECT created, UNIX_TIMESTAMP(created) AS TS FROM Entry
Il risultato: create = 2013-02-14 20:47:35 TS = 1360871255
Così ora voglio fare il in un altro modo, ho passato un Timestamp UNIX e voglio confrontarlo con le voci nel mio database. Sfortunatamente non sono in grado di scrivere uno script PHP che funzioni. Non so perché, ma quando mi sto passando la stessa data e ora (1.360.871,255 mila) per PHP non ottengo 2013/02/14 20:47:35 con questo metodo:
public static function toDateTime($unixTimestamp){
return date("Y-m-d H:m:s", $unixTimestamp);
}
Quando chiamo toDateTime (1360871255) restituirà 2013-02-14 20:02:35 che non è il DateTime originale.
Lo so, non ho bisogno di formattare 1360871255 su un Y-m-d H: m: s per usarlo in MySQL, ma 1360871255 sembra non essere il tempo che mi aspettavo (e MYSQL UNIX_TIMESTAMP è tornato).
Quello che voglio fare è una semplice query che mi mostra le voci che sono più vecchi di una certa data e ora, qualcosa di semplice come questo:
SELECT * FROM Entry WHERE created < 1360871255
ma come ho detto prima, il risultato della query non è il previsto , perché 1360871255 sembra non essere l'ora esatta.
Non si specifica alcun fuso orario speciale per la connessione mysql in php.
Qualche suggerimento?
Dannazione, il tuo diritto ... omg ... sono così stupido – sockeqwe
@sockeqwe - Non sei stupido. L'hai appena superato. Succede. – Greeso