yyyy una formato fecha convertir como cadena php mysql time timestamp date

php - una - formato fecha mysql dd mm yyyy



Si tengo una cadena de PHP en el formato YYYY-DD-MM y una marca de tiempo en MySQL, ¿hay una buena manera de convertir entre ellos? (6)

Conversión de la marca de tiempo al formato:

date(''Y-m-d'', $timestamp);

Conversión de formateado a marca de tiempo:

mktime(0, 0, 0, $month, $day, $year, $is_dst);

Consulte la fecha y mktime para obtener más documentación.

Cuando se trata de almacenar, depende de usted si usar el formato DATE de MySQL para lanzar como fecha formateada; como un entero para almacenar como una marca de tiempo UNIX; o puede usar el formato TIMESTAMP de MySQL, que convierte una marca de tiempo numérica en un formato legible. Consulte el documento de MySQL para obtener información de TIMESTAMP.

Estoy interesado en hacer comparaciones entre la cadena de fecha y la marca de tiempo de MySQL. Sin embargo, no veo una conversión fácil. ¿Estoy pasando por alto algo obvio?


Una cadena de fecha del formulario:

YYYY-MM-DD

no tiene tiempo asociado con eso. Una marca de tiempo MySQL es de la forma:

YYYY-MM-DD HH:mm:ss

para comparar los dos, tendrá que agregar una hora a la cadena de fecha, como la medianoche, por ejemplo

$datetime = ''2008-08-21''.'' 00:00:00'';

y luego usa una función para comparar el tiempo epoc entre ellos

if (strtotime($datetime) > strtotime($timestamp)) { echo ''Datetime later''; } else { echo ''Timestamp equal or greater''; }


Use la función PHP Date . Puede que tenga que convertir la marca de tiempo mysql en una marca de tiempo Unix en su consulta utilizando la función UNIX_TIMESTAMP en mysql.


strtotime () y getdate () son dos funciones que se pueden usar para obtener fechas de cadenas y marcas de tiempo. Sin embargo, no hay una función de biblioteca estándar que convierta entre marcas de tiempo MySQL y PHP.


Escribí esta pequeña función para simplificar el proceso:

/** * Convert MySQL datetime to PHP time */ function convert_datetime($datetime) { //example: 2008-02-07 12:19:32 $values = split(" ", $datetime); $dates = split("-", $values[0]); $times = split(":", $values[1]); $newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]); return $newdate; }

espero que esto ayude


Puede evitar tener que usar strtotime() o getdate() en PHP utilizando la función UNIX_TIMESTAMP() MySQL.

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

Los datos resultantes serán una marca de tiempo Unix entera estándar, por lo que puede hacer una comparación directa con time() .