Foros del Web » Programando para Internet » PHP »

Crear fecha

Estas en el tema de Crear fecha en el foro de PHP en Foros del Web. Hola, mi duda es como crear una fecha a partir de un String, que no sabes en que formato te viene. Tengo un campo fecha ...
  #1 (permalink)  
Antiguo 28/04/2009, 04:00
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Pregunta Crear fecha

Hola, mi duda es como crear una fecha a partir de un String, que no sabes en que formato te viene.

Tengo un campo fecha donde el usuario puede introducir 2009/01/01, o 1-1-2009, etc... es decir una fecha como a el le parezca. Hay alguna manera de crear un "date" válido para introducir en la BD?

Gracias.
  #2 (permalink)  
Antiguo 28/04/2009, 04:08
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Crear fecha

usando la funcion de ereg_replace puedes hacer que antes de introducirse los datos a la BBDD se modifiquen para que tomen el aspecto de estos

http://es.php.net/ereg_replace

en el link hay ejemplo, es bastante sencillito.
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #3 (permalink)  
Antiguo 28/04/2009, 04:29
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Crear fecha

¿Pero esa función es para sustituir cadenas no? yo no necesito sustituir nada, solo saber si puedo montar una fecha válida para la bd en formato (Y-m-d). He visto ejemplos con el date ("Y-m-d)" y con "mktime" pero no consigo que funcione.
  #4 (permalink)  
Antiguo 28/04/2009, 04:37
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Crear fecha

Perdon, te entendi mal, prueba :

Código PHP:
<?php echo date "d-m-Y" );?>
Si te funciona solo tendrias que hacer

Código PHP:
<?php fecha=date "d-m-Y" );
echo 
$fecha;?>
Puedes ordenar d m Y como quieras

A mi me funciona en un servidor linux con todo instalado a mano.

Un saludo
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #5 (permalink)  
Antiguo 28/04/2009, 04:42
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Crear fecha

Creo que no me entiendes No-Name, la fecha me la da el usuario ya, pero me la da como string, es decir, en el formato que el quiere.
  #6 (permalink)  
Antiguo 28/04/2009, 04:54
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Crear fecha

Entonces vuelvo a la primera respuesta.

Es tan simple como analizar las variables posibles de que un usuario te meta la fecha y organizarla.

y sino en vez de 1 campo usas 3, otra posibilidad es la crear un calendario automatico y asi solo puede seleccionar las que tu le dejes y con el formatu que tu hayas puesto.


Truco que no es de programacion pero tambien sirve:

El usuario tiene un 80% de neuronas desactivadas mientas navega (esto es broma)...

Si le pones como value en el campo DD-MM-YYYY

Como crees que la va a poner ?

Usar un poco la logica y psicologia de usuario no esta de mas, aparte que con la primera respuesta tambien se podia haber solucionado.

Otra cosa es que haya formas mejores o que te parezca muy complicado.

Suerte.
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #7 (permalink)  
Antiguo 28/04/2009, 04:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Crear fecha

Prueba a pasarlas a timestamp UNIX... Algo así, por ejemplo:

Código PHP:
Ver original
  1. $fecha_1 = explode ("/",$_GET["date1"]);
  2. $dia_ini = $fecha_1[0];
  3. $mes_ini = $fecha_1[1];
  4. $ano_ini = $fecha_1[2];
  5.  
  6. $fecha_2 = explode ("/",$_GET["date2"]);
  7. $dia_fin = $fecha_2[0];
  8. $mes_fin = $fecha_2[1];
  9. $ano_fin = $fecha_2[2];
  10.  
  11. $timestamp1 = mktime (0,0,0,$mes_ini,$dia_ini,$ano_ini);
  12. $timestamp2 = mktime (0,0,0,$mes_fin,$dia_fin,$ano_fin);
  13.  
  14. $f_1 = date("M-d-Y", $timestamp1);
  15. $f_2 = date("M-d-Y", $timestamp2);

¿Algo así?


¡Saludos!

Última edición por Koden; 28/04/2009 a las 05:01 Razón: Fallo en el código!
  #8 (permalink)  
Antiguo 28/04/2009, 05:00
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Crear fecha

Gracias Koden por la respuesta,

pero imagina que el usuario, en lugar de introducir 1/1/2009, como lo tratas en tu código, introduce 2009-1-1. ¿Ya no funcionaria no?
  #9 (permalink)  
Antiguo 28/04/2009, 05:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Crear fecha

Puesss.. Supongo que no... Pero tienes todos los elementos para crear la fecha en los arrays $fecha_1 y $fecha_2...

Sólo tendrías que recorrerlos y analizar sus contenidos para formar la fecha de la mejor manera.

¡Un saludo!
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




La zona horaria es GMT -6. Ahora son las 13:50.