Foros del Web » Programando para Internet » PHP »

ayuda para cortar cadena de texto

Estas en el tema de ayuda para cortar cadena de texto en el foro de PHP en Foros del Web. buenas, que tal? desarrolle en su momento una aplicacion que funciona muy bien. pero ahora se me ha planteado un problema, por culpa de plantearlo ...
  #1 (permalink)  
Antiguo 01/10/2009, 04:13
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
ayuda para cortar cadena de texto

buenas,

que tal? desarrolle en su momento una aplicacion que funciona muy bien. pero ahora se me ha planteado un problema, por culpa de plantearlo mal!! jajaja

les cuento, tengo un formulario de seleccion de personas. quiero hacer una seleccion mediante edad. a la hora de guardar los candidatos, hice una concatenacion y tengo un campo guardado en la bd tal que asi:

17 de Agosto de 2009

como necesito hacer la tria por edad, necesitaria restar al año de la fecha de nacimiento, el año actual. pero claro, que problema tengo? que los caracteres van cambiando dependiendo de que sea un mes u otro, con lo que no se como obtener el año.

hay alguna manera de coger los 4 ultimos caracteres y extraerlos de la variable?

saludos!
  #2 (permalink)  
Antiguo 01/10/2009, 04:31
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: ayuda para cortar cadena de texto

Eso es sencillo:

Código php:
Ver original
  1. $cadena=substr($cadena, strlen($cadena)-4);

Sin embargo, para calcular la edad te va a hacer falta ver el día y el mes de nacimiento y compararlos con los actuales. Mi recomendación es que lo pases a un formato timestampy calcules la edad a partir de ahí. Seguro que hay scripts hechos para hacer eso a partir del timestamp.

Un saludo
  #3 (permalink)  
Antiguo 01/10/2009, 04:36
Avatar de echevemaster  
Fecha de Ingreso: diciembre-2002
Ubicación: Carabobo, Venezuela
Mensajes: 84
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: ayuda para cortar cadena de texto

Tienes que utilizar valores negativos en la funcion substr

Por ejemplo

Código php:
Ver original
  1. $cadena = "18 de Abril de 2009";
  2. $cadena_resultante = substr ($cadena, -4);
__________________
En el codigo esta la solucion, pero no la encuentro por ningun lado.
  #4 (permalink)  
Antiguo 01/10/2009, 04:44
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: ayuda para cortar cadena de texto

Siempre que guardeis tiempos o fechas en la BD yo recomiendo guardarla usando el formato Unix timestamp. Si puedes cambiar las fechas, hazlo, hay formas y metodos para actualizar las fechas que tienes tu guardadas al formato que he dicho.

Tu problema: Para extraer los 4 últimos caracteres de una cadena solo tienes que usar la función substr

Código PHP:
$fecha "17 de Agosto de 2009";
$year substr($fecha, -4); 
Pero yo te recomiendo usar esta. Para tener en cuenta los meses y los días
Código PHP:
$meses = array("Enero" => 1"Febrero" => 2"Marzo" => 3,  ... "Noviembre" => 11"Diciembre" => 12);
$fecha "17 de Agosto de 2009";
$fecha explode(' '$fecha);
$dia $fecha[0];
$mes $meses[$fecha[2]];
$year $fecha[4];

$fecha mktime(000$mes$dia$year);

$diferencia time() - $fecha;

//Cuanto más grande sea el número guardado en $diferencia, más antigua es la fecha 
Así tendrá en cuenta tambíen los meses y los días.

substr
Explode
mktime
time
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #5 (permalink)  
Antiguo 01/10/2009, 11:01
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda para cortar cadena de texto

gracias a todos por vuestras respuesta!!!

al final con el substr -4 me funciono a la perfeccion!!!

saludos!
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 02:56.