HOWTO · PHP

Formato de fecha en PHP para inserción en MySQL

Este artículo presentará cómo formatear la fecha en PHP, antes de insertarla en MySQL.

MySQL es una base de datos RDBMS destinada a almacenar datos relacionales. Soporta varios tipos de datos, siendo Date uno de ellos. Como MySQL solo admite formatos de fecha particulares, debe formatear las fechas antes de insertar fechas en la base de datos; de lo contrario, la base de datos arrojará un error.

Este artículo presentará cómo formatear fechas en PHP antes de insertarlas en una base de datos MySQL.

MySQL admite 5 formatos de fecha.

  1. DATE: YYYY-MM-DD Sólo almacena la fecha sin hora en el rango de 1000-01-01 a 9999-12-31. Por ejemplo, 2021-10-28.
  2. DATETIME: YYYY-MM-DD HH:MI:SS. Almacena la fecha con la hora en el rango de 1000-01-01 00:00:00 a 9999-12-31 23:59:59. Por ejemplo, 2021-10-28 10:30:24.
  3. TIMESTAMP: YYYY-MM-DD HH:MI:SS. Almacena la fecha con la hora en el rango de 1970-01-01 00:00:01 a 2038-01-09 03:14:17. Por ejemplo, 2021-10-28 10:30:24.
  4. TIME: HH:MI:SS. Almacena la hora sin fecha en el rango de -838:59:59 a 838:59:59. Por ejemplo, 10:30:24.
  5. YEAR: YYYY o YY. Almacena el año 4 o 2 dígitos en el rango de 70(1970)-69(2069) para 2 dígitos y 1901-2155 | 0000 para 4 dígitos. Por ejemplo, 2021.

Antes de aprender la solución, comprendamos el concepto de date().

date() en PHP

Es una función PHP incorporada que devuelve la cadena de fecha formateada.

Sintaxis de date()

date($format, $timestamp);

Parámetros

$ formato: este es un parámetro obligatorio que especifica el formato de la cadena de fecha de salida. Algunas de las opciones son:

  1. d: el día del mes en el rango de 01 a 31
  2. m: representación numérica de un mes en el rango de 01 a 12
  3. Y: representación de cuatro dígitos de un año
  4. y: representación de dos dígitos de un año
  5. H: representación de dos dígitos de una hora en el rango de 00 a 23
  6. i: representación de dos dígitos de un minuto en el rango de 00 a 59
  7. s: representación de dos dígitos de un segundo en el rango de 00 a 59

$timestamp: Es un parámetro opcional que especifica una marca de tiempo Unix en formato entero. Si no se proporciona, se tomará un valor predeterminado como la hora local actual.

Código de ejemplo:

<?php
    $formated_DATETIME = date('Y-m-d H:i:s');
    echo $formated_DATETIME. "<br>";
    // 2021-10-27 14:02:16
    $formated_DATE = date('Y-m-d');
    echo $formated_DATE. "<br>";
    // 2021-10-27

    $formated_TIME = date('H:i:s');
    echo $formated_TIME. "<br>";
    //14:03:57

    $formated_YEAR = date('Y');
    echo $formated_YEAR. "<br>";
    // 2021

?>

Producción :

2021-10-27 14:02:16
2021-10-27
14:03:57
2021

date_format() en PHP

Es una función PHP incorporada que toma el objeto DateTime como entrada y devuelve la cadena de fecha formateada.

Sintaxis de date_format()

date_format($dateObject, $format);

Parámetros

$dateObject: Es un parámetro obligatorio que especifica un objeto DateTime.

$format: este es un parámetro obligatorio que especifica el formato de la cadena de fecha de salida. Algunas de las opciones son:

  1. d: el día del mes en el rango de 01 a 31
  2. m: representación numérica de un mes en el rango de 01 a 12
  3. Y: representación de cuatro dígitos de un año
  4. y: representación de dos dígitos de un año
  5. H: representación de dos dígitos de una hora en el rango de 00 a 23
  6. i: representación de dos dígitos de un minuto en el rango de 00 a 59
  7. s: representación de dos dígitos de un segundo en el rango de 00 a 59

Código de ejemplo:

<?php
    $date = date_create("2021/10/27");

    $formated_DATETIME = date_format($date, 'Y-m-d H:i:s');
    echo $formated_DATETIME. "<br>";

    $formated_DATE = date_format($date, 'Y-m-d');
    echo $formated_DATE. "<br>";

    $formated_TIME = date_format($date, 'H:i:s');
    echo $formated_TIME. "<br>";

    $formated_YEAR = date_format($date, 'Y');
    echo $formated_YEAR. "<br>";
?>

Producción :

2021-10-27 00:00:00
2021-10-27
00:00:00
2021