Pregunta

Estoy tratando de escribir una función para dar formato a una fecha y hora para mí. Tengo una función casi idéntica que formatea sólo una fecha. Esa función funciona bien. Acabo de añadir algo de código para tratar de tener que formatear la fecha con un tiempo. Debe devolver algo así como "18 may, 2009 21:50" pero yo estoy haciendo esta advertencia:

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

Este es el código que tengo:

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;
}

Lo que está poniendo a cabo es malo también. Se pone a cabo:

December 31, 1969 07:00 PM

pero la marca de tiempo en la base de datos es

2009-05-18 05:07:39
¿Fue útil?

Solución

PHP ya tiene una buena función perfectamente fecha-análisis: strtotime() . Devuelve una marca de tiempo Unix que se puede pasar a date().

En otras palabras, su función puede ser reducido a esto:

function dateTimeFormat($dateIn)
{
    return date("F j, Y h:i A", strtotime($dateIn));
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top