Ci sono un sacco di domande che chiedono di "UNIX timestamp to MySQL time". Avevo bisogno del modo invertito, sì ... Qualche idea?Come convertire il tempo MySQL in UNIX timestamp usando PHP?
risposta
Uso strtotime(..)
:
$timestamp = strtotime($mysqltime);
echo date("Y-m-d H:i:s", $timestamp);
Controllare anche questo (per farlo in modo MySQL.)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
È possibile MySQL UNIX_TIMESTAMP
funzione direttamente dalla tua ricerca, ecco un esempio:
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
Allo stesso modo, è possibile passare nel campo data/datetime:
SELECT UNIX_TIMESTAMP(yourField);
Che non funziona se il campo è un campo TIME, solo DATE, DATETIME o una stringa con giorni, mesi e anni –
$time_PHP = strtotime($datetime_SQL);
Alcune spiegazioni di ** why ** questo risponde alla domanda renderebbe la risposta più utile. * (So che probabilmente ci sono molte altre risposte a una riga, ma non sono state appena aggiunte) * – ChrisF
La domanda era come convertire $ mysql_timestamp in $ php_timestamp, la risposta è che "strtotime" lo fa, come mostrato. Cosa c'è da spiegare? –
Da uno dei miei altri post, ottenendo un unixtimestamp:
$unixTimestamp = time();
Conversione in mysql formato datetime:
$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);
Ottenere alcuni mysql timestamp:
$mysqlTimestamp = '2013-01-10 12:13:37';
convertirlo in un unixtimestamp:
$unixTimestamp = strtotime('2010-05-17 19:13:37');
... confrontandolo con uno o una serie di volte, per vedere se l'utente ha immesso un tempo realistico:
timestampif($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
{...}
Unix anche più sicuro. È possibile effettuare le seguenti operazioni per verificare se una variabile passata URL è valido, prima di controllare (per esempio) il precedente test di ricezione:
if(ctype_digit($_GET["UpdateTimestamp"]))
{...}
leggermente abbreviato potrebbe essere ...
echo date("Y-m-d H:i:s", strtotime($mysqltime));
Quasi come uno scherzo :) – CoR
Invece di strtotime
dovresti usare DateTime
con PHP. Si può anche considerare il fuso orario in questo modo:
$dt = DateTime::createFromFormat('Y-m-d H:i:s', $mysqltime, new DateTimeZone('Europe/Berlin'));
$unix_timestamp = $dt->getTimestamp();
$mysqltime
è di tipo MySQL Datetime, e. g. 2018-02-26 07:53:00
.
Prestare attenzione ai fusi orari quando si utilizza strtotime. Vedi questa domanda: http://stackoverflow.com/questions/10417179/is-the-result-of-strtotime-is-changed-based-on-the-timezone – Eric