Los
tipos de fecha y hora en MySQL son DATETIME, DATE, TIMESTAMP, TIME, y
YEAR. Cada uno de estos tipos tiene un rango de valores.
MySQL
da advertencias de error si se intenta insertar una fecha que no
respete el formato de fecha que tiene MySQL, como es por ejemplo
'2011-11-31'. Y cuando el usuario por ejemplo, en un formulario web
inserta la fecha con el formato: día - mes-año en la base de datos
se producirá un error y MySQL no insertará la fecha en la base de
datos. MySQL sólo permite almacenar fechas con el formato
'año-mes-día' .
Algunas
consideraciones que se han de tener en cuenta a la hora de trabajar
con tipos de fecha y hora en MySQL:
MySQL
muestra los valores para una fecha o hora en un formato de salida
estándar.
Las
fechas con años de dos dígitos son ambiguas, ya que no se sabe el
siglo. MySQL interpreta los años de dos dígitos usando las
siguientes reglas:
Los
años del rango 70-99 se convierten en 1970-1999.
Los
años del rango 00-69 se convierten en 2000-2069.
Las
fechas siempre deben darse en el orden año-mes-día (por ejemplo,
'98-09-04').
MySQL
convierte automáticamente una fecha o hora a un número si el valor
se usa en un contexto numérico y viceversa, es decir, podemos hacer
operaciones con las fechas.
Teniendo
en cuenta estas cuestiones a la hora de mostrar la fecha de una base
de datos con el formato de día-mes-año, tendremos que usar la
función explode() de PHP. Por ejemplo:
Una
vez que hayamos estriado los registros de una base de datos mediante
una consulta, queremos convertir la variable $fecha, en un formato
más legible para los usuarios, ya que las fechas en las base de
datos se guardan en formato americano (año-mes-día), haremos lo
siguiente
$fecha=$registro['fecha'];
$fecha_m
= explode("-", $fecha);
$dia_m
=$fecha_m[2];
$mes_m
=$fecha_m[1];
$anio_m=$fecha_m[0];
$fecha_final=
$dia_m.'-'.$mes_m.'-'.$anio_m;
Vamos
a explicar un poco lo que hemos hecho o que hace la función
explode() de PHP lo que hacemos es convertir la fecha en una matriz y
usamos el guión “-” para indicar a la función donde comienza
cada campo de la matriz, como se hace en el ejemplo: $fecha_m =
explode("-", $fecha); teniendo en cuenta que el primer
campo de la matriz es el año, el segundo el mes y el tercero es el
día, pero recuerda que el valor de inicio del indice de una matriz
es 0.
Una
vez que tenemos la matriz creamos tres variables que contienen el
valor de cada campo de la matriz como muestra el ejemplo:
$dia_m
=$fecha_m[2];
$mes_m
=$fecha_m[1];
$anio_m=$fecha_m[0];
Y
finalmente concatenamos las tres variables que contiene los valores
de la matriz en el orden y el separador que deseemos, en este caso:
$fecha_final=
$dia_m.'-'.$mes_m.'-'.$anio_m;
Espero
que os sea de ayuda a todos un saludo:
Antonio
Comentarios
Un saludo
Esta función es muy útil para validar mediante expresiones regulares los parámetros que se envíen por método GET, y de esta función es muy útil para securizar nuestras aplicaciones Web.
De esta forma evitaremos ISQL y XSS.
La función ereg() ha sido declarada obsoleta en PHP 5.3.0. Su uso está totalmente desaconsejado.
Gracias por colaborar y comentar:
Un saludo desde España a tod@s
Publicar un comentario
Dejanos tu opinión o comentario, entre todos podemos aprender más sobre los temas que se tratan en este Blog. No te olvides seguidme en Twitter, YouTube o Facebook. Muchas gracias por tu tiempo. 👋😎