Domanda

Sto cercando di scrivere una funzione per formattare la data e l'ora per me. Ho una funzione quasi identico che formatta solo una data. Tale funzione funziona bene. Ho appena aggiunto il codice per cercare di avere lo formattare la data con un tempo. Esso dovrebbe restituire qualcosa come "18 Maggio 2009 09:50" ma sto ottenendo questo avvertimento:

Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421

Ecco il codice che ho:

function dateTimeFormat($dateIn)
{
   $x = explode(" ",$dateIn);
   $y = explode("-",$x[0]);
   $z = explode(":",$x[1]);

   $year = $y[0]; 
   $month = $y[1];
   $day = $y[2];
   $hour = $z[0];
   $min = $z[1];

   $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 

   return $dateOut;
}

Quello che sta mettendo fuori è sbagliato troppo. Si mette fuori:

December 31, 1969 07:00 PM

, ma il timestamp nel database è

2009-05-18 05:07:39
È stato utile?

Soluzione

PHP ha già una perfetta buona funzione di data-analisi: strtotime() . Restituisce un timestamp Unix, che è possibile passare a date().

In altre parole, la funzione può essere ridotto a questo:

function dateTimeFormat($dateIn)
{
    return date("F j, Y h:i A", strtotime($dateIn));
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top