Foros del Web » Programando para Internet » PHP »

Preguntita sobre fechas

Estas en el tema de Preguntita sobre fechas en el foro de PHP en Foros del Web. Tengo un formulario para introducir datos de un registro, y tengo un campo fecha, en el cual solo me la coge si la escribo en ...
  #1 (permalink)  
Antiguo 23/06/2008, 02:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Preguntita sobre fechas

Tengo un formulario para introducir datos de un registro, y tengo un campo fecha, en el cual solo me la coge si la escribo en formato AAAA-MM-DD. ¿Hay alguna manera de introducirla en formato DD-MM-AAAA y que se guarde en la base de datos en formato AAAA-MM-DD? he visto que hay alguna funcion por ahi (date()) que podría funcionar, pero a mi no me sale.

Gracias de antemano
  #2 (permalink)  
Antiguo 23/06/2008, 03:04
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Preguntita sobre fechas

Hola Darioio. Creo que lo que deberías hacer es poner tres <input type='text'>, en uno recoges el dia, en otro el mes y en otro el año. Despues, cuando los recibas haces esto con PHP:

$fecha = $anio."-".$mes."-".$dia;

Y ya lo puedes guardar en la base de datos. Espero que te sirva.
  #3 (permalink)  
Antiguo 23/06/2008, 03:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Preguntita sobre fechas

Hola,

tienes varias opciones:

1 - con date, si la fecha se inserta automaticamente, es decir, se inserta la fecha actual, no la que indique el usuario.

Ej:
Código PHP:
<input type='hidden' name='fecha' value='<?php echo date('Y-m-d H:i:s'); ?>'>
2.- si la introduce el usuario debes crearle algun filtro para que la meta de forma correcta, es decir, AAA-MM-DD o que la introduzca como dices, DD-MM-AAA y tu despues la cambias a AAA-MM-DD.

Si eres tu quien despues de filtrarla tienes que cambiarla de formato podrias utilizar una funciona mas o menos asi:

Código PHP:
function fecha($fecha)
{
 
$fecha=explode(" ",$fecha);
 
$fecha[0]=explode("-",$fecha[0]);
 
$fecha=$fecha[0][2]."-".$fecha[0][1]."-".$fecha[0][0];
        return 
$fecha;

La funcion recibe tu fecha DD-MM-AAAA y devuelve AAAA-MM-DD
  #4 (permalink)  
Antiguo 23/06/2008, 03:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Respuesta: Preguntita sobre fechas

La fecha la introduciría el usuario; lo ideal sería poner 3 campos tipo lista, uno con los dias (1-31), otro con los meses (1-12) y otro con los años (2008 en adelante), y que de alguna manera pudiera recoger el valor de estas tres listas, concatenarlas con guiones de por medio, y despues insertar esto en la base de datos. Lo único que no se es como asignar el valor de cada lista a variables de php.
  #5 (permalink)  
Antiguo 23/06/2008, 04:03
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Preguntita sobre fechas

Para asignar el valor de cada lista a variables php debes recogerlos (con POST, por ejemplo) tal que así:

$dia = $_POST['dia'];
$mes = $_POST['mes'];
$anio = $_POST['anio'];

//Para que esto funcione tus listas deben llamarse "dia", "mes" y "anio".

Y para concatenarlos:

$fecha = $anio."-".$mes."-".$dia.";
  #6 (permalink)  
Antiguo 23/06/2008, 04:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Respuesta: Preguntita sobre fechas

Me sigue sin pillar la fecha (bueno, la fecha aparece como 0000-00-00, que es el valor por defecto). el código que tengo en mi formulario para recoger la fecha es el siguiente:

<input name="dia" type="text" class="Estilo2" id="dia" tabindex="1" value="" size="5">
<input name="mes" type="text" class="Estilo2" id="mes" tabindex="1" value="" size="5">
<input name="anio" type="text" class="Estilo2" id="anio" tabindex="1" value="" size="5"><?php
$anio = $_POST['anio'];
$mes = $_POST['mes'];
$dia = $_POST['dia'];
$fecha = $anio."-".$mes."-".$dia;
?>


<input name="fecha" type="hidden" id="caca" value="<?php print $fecha ?>">



Y luego ya despues hago el insert, y le digo que el campo fecha lo recoja del campo oculto "fecha".

¿que puede estar pasando?
  #7 (permalink)  
Antiguo 23/06/2008, 04:31
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Preguntita sobre fechas

Estas recibiendo la fecha en la misma página donde la escribes y despues la mandas oculta...? :

Inténtalo recogiéndolas en otra página (donde haces el INSERT) y me cuentas.
  #8 (permalink)  
Antiguo 23/06/2008, 04:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Respuesta: Preguntita sobre fechas

Yo tengo el formulario con todos los campos a insertar, y el insert lo tengo en la misma pagina. La siguiente pagina sería la de "registro insertado..". no hay manera de recoger el valor de las variables en una misma pagina?
  #9 (permalink)  
Antiguo 23/06/2008, 04:46
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Preguntita sobre fechas

Yo te recomiendo que el insert lo hagas en otra página, yo suelo hacerlo siempre así, aunque no soy ningún experto, ese es mi consejo.

Supongo que podrías hacerlo en la misma página pero yo no se decirte cómo, lo siento.
  #10 (permalink)  
Antiguo 23/06/2008, 08:06
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Preguntita sobre fechas

para recoger los datos de dia,mes,año en la misma pagina podrias hacer esto

Formulario.php

Código PHP:
<?php

if(isset($_POST['dia']))
{
  
//si existe $_POST['dia'] quiere decir que se envio el formulario por lo tanto
  //entra aqui, recoges los datos y los insertas en la base de datos
  
$dia=$_POST['dia'];
  
$mes=$_POST['mes'];
  
$anio=$_POST['anio'];

  
$query="creas tu query para insertar los datos";

 
//si se insertan con exito pues redirecciones a una pagina con un mensaje
 //de confirmacion positiva o lo enseñas aqui
 
echo "Tus datos fueron insertados";

}
else
{
  
//si no existe entramos aqui y enseñamos el formulario
?>
<input name="dia" type="text" class="Estilo2" id="dia" tabindex="1" value="" size="5">
<input name="mes" type="text" class="Estilo2" id="mes" tabindex="1" value="" size="5">
<input name="anio" type="text" class="Estilo2" id="anio" tabindex="1" value="" size="5">
<?php
}
?>
  #11 (permalink)  
Antiguo 23/06/2008, 08:14
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Preguntita sobre fechas

Que problema este de las fechas, ahora estoy renegando, por que no solo necesito hacer un insert a la bd, sino luego mostrarlos en dd-mm-yyy luego ingresar un criterio de busqueda por fechas en la presentacion, un filtrado de una fecha a otra.....
ya me duele la cabeza, lo mejor es que estoy trabajando con cakephp.
Por alli alguien conoce algun helper o algo que me facilite esto automaticamente :)
He buscado, pero no he encontrado nada, que me sirva.
Saludos
__________________
Drupal Argentina
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 04:21.