Foros del Web » Programando para Internet » PHP »

No consigo cambiar la fecha

Estas en el tema de No consigo cambiar la fecha en el foro de PHP en Foros del Web. A ver si me podeis mirar lo que tengo mal en este codigo para cambiar la fecha de formato añomesdia a dia mes año Código ...
  #1 (permalink)  
Antiguo 04/01/2005, 08:14
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
No consigo cambiar la fecha

A ver si me podeis mirar lo que tengo mal en este codigo para cambiar la fecha de formato añomesdia a dia mes año
Código PHP:
echo "<table width=480  align=center cellspacing=3 cellpadding=3 border=1 bordercolor=#003366>";
  
//echo "<tr>";
    //echo "<td>";
      //echo "<tr>";
        
echo "<td valign=top >Ref.    ".$registro['referencia']."</td>";
        
$var explode('-',$fecha);
       echo 
"<td><div align=right>".$var[2]-$var[1]-$var[0]."</div></td></tr></td></tr>";
   
//ASI LO MUESTRO AHORA     //echo "<td><div align=right>".$registro['fecha']."</div></td></tr></td></tr>"; //ASI ES COMO LO ESTOY MOSTRANDO EN FORMATO AÑOMESDIA
  //echo "<tr>";
    
echo "<td>";
      
//echo "<tr>";
        
echo "<td valign=top>"
Sé que es una tontería pero no doy con ello, el caso es que me lo saca fuera de la tabla y me sale 0, no sé, a ver si me hechais un cable, gracias de antemano
  #2 (permalink)  
Antiguo 04/01/2005, 08:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Debes tratar tus datos como cadenas ..

Código PHP:
>".$var[2]."-".$var[1]."-".$var[0]."</ 
Un saludo,
  #3 (permalink)  
Antiguo 04/01/2005, 12:14
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Gracias por tu respueste Cluster, mira te comento, lo pongo como tú me dices y lo único que me sale ahora son los guiones
  #4 (permalink)  
Antiguo 04/01/2005, 12:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

¿Donde das valor a la variable $fecha? Es que lo que usas ahora es $registro['fecha']. ¿No sera que $fecha no tiene valor?

saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 04/01/2005, 12:59
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola mon porque no lo pruebas asi:

$fechas1="$var[2]-$var[1]-$var[0]";

Salu2.

Bye
__________________
Atte. Mohamed :aplauso:
  #6 (permalink)  
Antiguo 04/01/2005, 13:31
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Diosss, estoy loco ya no veo, claro que no tenía valor $fecha, gracias josemi, supongo que Cluster es buenísimo pero adivino no creo, cuando estámos tan limitados y queremos aprender rápido no vemos nada, ahora deje el código así
Código PHP:
$fecha=$registro['fecha'];
        
$var explode('-',$fecha);
       echo 
"<td><div align=right>".$var[2]."-".$var[1]."-".$var[0]."</div></td></tr></td></tr>"
Y si dá la fecha pero ........

Ahora tengo otro problema que me acabo de dar cuenta y es que en el formulario donde el cliente mete los datos entre los que se encuentra la fecha, si esta no la mete en formato año mes día no me la muestra bien, es decir si en el formulario metemos dia mes y año me devuelve una fecha rara, oto lío más, ahora que hago? no sé si me entendeis, venga gracias, Hola baklao, qué tal amigo?
  #7 (permalink)  
Antiguo 04/01/2005, 13:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. Si tu en tus BD usas campos DATE (o DATETIME) .. Mysql (o la BD que uses) lo guarda como aaaa-dd-mm y así es como requiere su ingreso a la BD en ese campo "DATE" ..

Para obtener esa fecha en ese formato (el que guarda Mysql) .. puedes usar SQL: concretamente la función DATE_FORMAT() y así evitas ese "explode()" que haces .. es más optimo y te dá más juego para dar el formato de salida que guestes sin lios de explode y demas.

Como te he comentado .. a Mysql y su campo DATE le interesa ese formato . .que puede no coincidir con lo que tus usuarios ingresan . .así que tendrás que:

1) avisa a tus usuarios que el formato es tal ..
2) comprueba que la fecha sea válida (por si lo ingresan mal). Esto lo puedes hacer con la función checkdate() de PHP
3) usa explode() como ahora lo haces .. pero para dar el formato que requiere un campo DATE y así lo ingresas en tu BD al hacer tu INSERT/UPDATE

Un saludo,
  #8 (permalink)  
Antiguo 04/01/2005, 14:29
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno ya lo solucioné, supongo que no es ninguna cosa del otro mundo pero para mí es bastante ya que estoy empezando, como he dicho tengo un formulario que el cliente debe rellenar y uno de los campos es la fecha del día en que hace la operación, el problema que tenía lo he resuelto poniendo en el formulario que me coja la fecha por defecto solo que en vez de poner
Código PHP:
<?php
$fecha 
date("d/m/Y ");
?>
Digo que ponga
Código PHP:
<?php
$fecha 
date("Y/m/d ");
?>
Después pongo en el campo del formulario destinado a fecha
Código PHP:
<input name="fecha" type="text" id="<? echo $fecha ?>" value="<? echo $fecha ?>">
Y listo ya me coje el solo la fecha con el formato año mes día para poder mandarla a la bd y así no tener luego problemas para mostrarla haciendo el explode del campo fecha y mostrarla en la consulta con el formato dia mes año, como dije antes seguro que es una pijada pero para mí es todo un logro haber podido hacerlo yo solo y por eso lo comparto aquí para los que lo necesiten. saludos y muchas gracias en breve estaré otra vez por quí seguro. Muchísimas gracias a todos los que me estais ayudando

Última edición por mon; 04/01/2005 a las 14:30
  #9 (permalink)  
Antiguo 05/01/2005, 08:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. esa fecha la puede modificar tu usuario? .. por qué si esa fecha no es para que la modifique tu usuario y lo que deseas es guardar la fecha que se crea/actualiza ese registro .. lo que puedes usar (más seguro y fiable) es SQL, concretamente la función NOW() o CURDATE() de Msyql para obtener la fecha actual ..

Ejemplo de uso:
INSERT INTO tabla (id,fecha) VALUES ('',CURDATE())



Un saludo,
  #10 (permalink)  
Antiguo 05/01/2005, 10:43
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Si, el usuario actualiza su web cuando lo necesita y esa fecha puede darse algún caso en concreto que necesite poner la fecha que el quiera, no va a ser de una manera frecuente pero necesito que pueda cambiarla, ya sabes, por el tema de Murphy más que nada, muchas gracias Cluster y salu2
  #11 (permalink)  
Antiguo 05/01/2005, 11:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Una solucion puede ser dividir el campo en el formulario en 3, uno para el dia, otro para el mes, y otro para el año. Pueden cajas de texto o desplegables. Luego solo es cuestion de concatenar los 3 valores en el orden correcto al hacer la insercion.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 25/01/2005, 17:29
 
Fecha de Ingreso: diciembre-2003
Mensajes: 59
Antigüedad: 20 años, 3 meses
Puntos: 0
como se concatenan???
  #13 (permalink)  
Antiguo 26/01/2005, 05:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En PHP .. las "cadenas" (strings) se concatenan con el punto:

$blabla=$_POST['nose'].$_POST['otravariable'];

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:11.