Foros del Web » Programando para Internet » PHP »

Aporte fechas en PHP (Recoger y mostrar)

Estas en el tema de Aporte fechas en PHP (Recoger y mostrar) en el foro de PHP en Foros del Web. Buenos días a todos. En esta ocasión os traigo una pequeña guía para aquellos que se están iniciando en PHP. Hace poco tuve un problema ...
  #1 (permalink)  
Antiguo 13/08/2015, 03:17
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Información Aporte fechas en PHP (Recoger y mostrar)

Buenos días a todos. En esta ocasión os traigo una pequeña guía para aquellos que se están iniciando en PHP.
Hace poco tuve un problema con la inserción y recogida de fechas en PHP. ¿Qué era lo que quería?
1º Que el usuario insertara la fecha en formato europeo pero la BD la recogiese en formato americano (date en MySQL)

2º Al recoger las fechas de la BD, se me volviesen a mostrar en formato Europeo y en aquellas que la función strtotime diese 01-01-1970, debido al día de creación relacionado con unix, me devolviese 0000-00-00 u otro cualquier valor que yo quisiese. ¡OJO! lo que yo quería es que todas las fechas por debajo de 1970 me mostrase ¡LO MISMO! en caso de necesitar ver fechas inferiores deberéis de buscar, aquí eso no se explica.

Puestos en situación, ¡Empecemos!

Para insertar una fecha vamos a usar el imput HTML5 date. Date tiene un pequeño calendario en el que el usuario puede o bien elegir las fechas de manera visual o integrarlas de manera visual.

Código PHP:
<input type="date" Class="form-control" name="" step="1" min="0000-00-00" value=""
Con esto el usuario ingresará en formato Europeo pero cuando se hagla insercción aparecerá en americano.

Lo malo de esta forma es que en Mozilla no funciona a día de hoy, solo chrome. En breves Mozila lo permitirá así que con calma.


Ahora vamos a mostrarlo.

Este código se me ocurrio debido a las necesidades. Copio y pego con comentarios.

Código PHP:
if($nombre=$_GET["nombre"]){ 
                
$query "select * from usuarios where nombre = '$nombre' ";     // Esta linea hace la consulta
                     /* $result = mysqli_query($conexion, $query); */
                
}
                    
$result mysqli_query($conexion$query);
                    while (
$registro mysqli_fetch_array($result)){ 

//Guardamos en una variable la fecha de la columna de la BD

                    
$fechaRegistroBD $registro['fecha_registro'];
 
//en otra variable convertimos a formato europer con strtotime
                    
$fechaRegistroMOD=date("d-m-Y",strtotime($fechaRegistroBD));

//Si la fecha guardada en la BD es 0000-00-00 que no me pinte nada. (Esto podemos cambiarlo)
                    //Con esto evitamos que nos salga el bug de unix 1970
                        
if($fechaRegistroBD=== '0000-00-00'){
                            
$fechaRegistroMOD "'';}

//Mostramos los datos ya modificados

        
                echo " 
                    
<tr
                    <
td width='150'>".$fechaRegistro."</td>
                      <
td width='150'>".$registro['nombre']."</td>
                </
tr"; 
                } 
Y eso es todo. A la hora de mostrar podemos mostra ordenados perfectamente por formato europeo.


¡Eso es todo! si teneis alguna duda preguntar!

Última edición por Jvgaas7; 13/08/2015 a las 03:45
  #2 (permalink)  
Antiguo 13/08/2015, 23:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte fechas en PHP (Recoger y mostrar)

No pretendo minimizar tu aporte, pero es mucho mejor usar la clase DateTime de PHP: http://php.net/manual/es/book.datetime.php

No tiene la limitación del timestamp y te permite almacenar fechas anteriores a 1970 que tal vez llegues a usar para guardar un dato histórico o fecha de nacimiento.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/08/2015, 03:42
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Aporte fechas en PHP (Recoger y mostrar)

No no para nada. Puse como una solución que encontré me sirvió y que puede ayudar.
Le voy a echar un ojo aunque sino lo hice por algo sería. Aún así gracias, estamos todos para ayudarnos y todo consejo es bienvenido!!
  #4 (permalink)  
Antiguo 18/08/2015, 17:19
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Aporte fechas en PHP (Recoger y mostrar)

Cita:
<td width='150'>".$fechaRegistro."</td>
Y $fechaRegistro de donde sale?
Cita:
$fechaRegistroMOD = "'';}
Eso no se que significa, supongo que quieres asignar una cadena vacía, pero esa no es la sintaxis.

Nose, para mi si el objetivo puntual era pasar de formato Y-m-d a d-m-Y simplemente haría:
Código PHP:
Ver original
  1. $fechaYmd = "2015-18-08";
  2. $fechadmY = implode("-", array_reverse(explode("-", $fechaYmd)));

O directamente en la base de datos:
Código PHP:
Ver original
  1. $query = "SELECT u.codigo, u.nombre, DATE_FORMAT(u.fecha, '%d-%m-%Y') FROM usuarios u
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: mysql, unix
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:06.