PHP - Dar formato a una fecha

 
Vista:
sin imagen de perfil

Dar formato a una fecha

Publicado por Josue (4 intervenciones) el 30/11/2016 00:40:56
Hola a tod@s!!!
Bueno, estoy trabado con algo tan sencillo como dar formato a una fecha. Estoy intentando con la funcion 'date_format' pero no consigo convertir una fecha "yyyy-mm-dd" a "dd-mm-aaaaa". Así es como obtengo la fecha del servidor e intento cambiar el formato.

1
2
3
4
$time = time();
$fecha = date("Y-m-d", $time);
 
$fecha_formato = date_format($fecha,"Y/m/d");

Cuando muestro $fecha_formato, no sale nada, como si estuviera en blanco.

Muchas gracias por vuestra ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Dar formato a una fecha

Publicado por Lawliet (351 intervenciones) el 30/11/2016 00:56:49
Hola...

Puedes pasar el formato de fecha desde la función date(). Te anexo un ejemplo.

1
2
3
4
<?php
	$fecha = date('Y/m/d');
	echo $fecha;
?>

Output
1
2016/11/29
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Dar formato a una fecha

Publicado por Josue (4 intervenciones) el 30/11/2016 01:05:13
Hola Lawliet, gracias por contestar, el problema es que necesito convertir fechas que ya están en una base de datos con el formato Y-m-d.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Dar formato a una fecha

Publicado por Lawliet (351 intervenciones) el 30/11/2016 01:08:38
Hola..

Como que tipo de dato lo manejas en tu base de datos, como un VARCHAR o un tipo DATE...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Dar formato a una fecha

Publicado por Josue (4 intervenciones) el 30/11/2016 15:30:20
Es de tipo date. Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Dar formato a una fecha

Publicado por kip (877 intervenciones) el 30/11/2016 01:12:49
Hola, intentalo asi:

1
2
3
4
$fecha_bd= '2016-11-09';
$fecha_format = date('Y/m/d', strtotime($fecha_bd));
$fecha_format_2 = date('d-m-Y', strtotime($fecha_bd));
echo 'FORMATO 1: '.$fecha_format.' - FORMATO 2:'.$fecha_format_2;

Si tu fecha que va a ser formateada viene desde la base de datos, deberia mantener el formato que coloque arriba YYYY-mm-dd.

Prueba y cuentanos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Dar formato a una fecha

Publicado por Josue (4 intervenciones) el 30/11/2016 15:40:18
Gracias 'kip', he hecho como me dijiste y funciona bien, lo haré así para que a la hora de ver la fecha se vea en dd/mm/yyyy. Luego a la hora de insertar en la base de datos se guardará en el formato americano yyyy/mm/dd.

Lo que si me he fijado es que si en la base de datos, cuando encuentra un registro con fecha 0000-00-00 porque no se insertó ninguna fecha en su momento, muestra cosas raras. Miraré la función strtotime en el manual para aclararme.

Muchas gracias!!!!!!!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Dar formato a una fecha

Publicado por kip (877 intervenciones) el 30/11/2016 17:27:08
En el caso de tener un campo 0000-00-00 es mejor verificar antes que este sea una fecha valida, podrias hacerlo asi:

1
2
3
4
5
6
7
8
$fecha_db = '0000-00-00';
$fecha_db2 = '2016-10-11';
if(($fecha_format = date_format(date_create($fecha_db), 'Y-m-d')) === $fecha_db) {
  echo date_format(date_create($fecha_format), 'd/m/Y');
} else { echo 'ESTA ES UNA FECHA NO VALIDA ! '; }
if(($fecha_format = date_format(date_create($fecha_db2), 'Y-m-d')) === $fecha_db2) {
  echo date_format(date_create($fecha_format), 'd/m/Y');
}

Ahora en lugar de usar strtotime(), use funciones creadas especificas para formatear y crear fechas.

Prueba el codigo anterior y te fijaras que solo te mostrara la fecha valida y en el caso de la que no es valida mostrara un mensaje, en tu caso por cada registro hará primero la verificación de la fecha y si es valida la mostrara.

Intentalo y nos cuentas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar