Spingere date stranamente formattati in MySQL da PHP
-
09-10-2019 - |
Domanda
Sono sicuro che questo deve essere un problema comune, ma non riesco a trovare da nessuna parte così qui va:
Non ho date in questo formato: 09/Jul/2003:00:03:48 -0300
e voglio spingerli in un campo DATETIME
in MySQL.
Qual è il modo più semplice per farlo? spingendoli come è risultato in loro di essere azzerati.
Soluzione
MySQL non include il fuso orario in datetimes, ma è possibile utilizzare:
STR_TO_DATE('09/Jul/2003:00:03:48', '%d/%b/%Y:%H:%i:%s')
... per convertire una rappresentazione di stringa di una data / ora in un DATETIME per la memorizzazione nel database.
Riferimento:
Altri suggerimenti
Per quanto ne so non può essere modificato e deve essere nel formato di seguito:
'AAAA-MM-GG HH: MM: SS'
La mia funzione preferita in tutti PHP è strtotime()
. Se ciò non può interpretare l'ingresso, allora probabilmente non posso codice di qualcosa che poteva.
Quindi mi sento di fare qualcosa di simile:
mysql_real_escape_string(date('Y-m-d H:i:s', strtotime($stragely_formatted_date)));
per preparare una stringa DATA per dare a MySQL.
Come sempre, pensare fusi orari nel vostro design.
Il mysql_real_escape_string()
è probabilmente inutile, ma mi sento sempre più sicuro quando lo uso.