PDA

View Full Version : [php mysql] date_format


zebmckey
24-01-2019, 13:10
Qualcuno sa dirmi che errore commetto?

<?php $data_scad=$row["data_scadenza"];?>
<td><?php echo date_format($data_scad, 'd/m/Y');?></td>

l'erreore è:

PHP Warning: date_format() expects parameter 1 to be DateTime, string given in .........

non capisco

DanieleG
24-01-2019, 14:43
Io uso questa sintassi (sono dentro un mysqli_fetch_array)


$ora = date("y/m/d H:i:s", strtotime($deadline['ora']));


Adattalo al tuo caso e prova :)
A naso hai un errore perché da DB recuperi un timetamp e non un DateTime

zebmckey
25-01-2019, 07:34
Io uso questa sintassi (sono dentro un mysqli_fetch_array)


$ora = date("y/m/d H:i:s", strtotime($deadline['ora']));


Adattalo al tuo caso e prova :)
A naso hai un errore perché da DB recuperi un timetamp e non un DateTime

Grazie ho risolto in questo modo modificando direttamente la query:

$data = "SELECT DATE_FORMAT(data_scadenza, '%d/%m/%Y')as data_scadenza,persg.idpersinsp,id_patenti, cognome, nome, Modello, Abilitazione FROM utenze.persg, utenze.patenti, utenze.tipo_patenti WHERE persg.idgrado=gradi.idgrado AND persg.idpersinsp=patenti.idpersinsp AND tipo_patenti.IdPatenti = patenti.IdPatenti ORDER BY cognome ASC";

Nuke987
27-01-2019, 00:17
Solo un piccolo consiglio. Dal database tendenzialmente si dovrebbe tirar fuori sempre la data in formato Y-m-d o Y-m-d H:i:s se c'è anche l'orario. In questo modo puoi localizzarla dipendentemente dall'utente.

Per dirne una ci sono paesi che mettono prima il mese, altri che usano il trattino o il punto come separatore e via discorrendo. Infine sarebbe anche più semplice ricavare un formato diverso al volo come ad esempio "Jan 1st" piuttosto che "1 Gen" ad esempio per datare una news.