Foros del Web » Programando para Internet » PHP »

Extraer arreglo de fechas

Estas en el tema de Extraer arreglo de fechas en el foro de PHP en Foros del Web. Buenas a todos; Tengo una tabla llamada ACTUACIONES en la que hay dos campos de fecha, uno dedicado para la fecha de comienzo y otro ...
  #1 (permalink)  
Antiguo 16/11/2004, 03:44
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Extraer arreglo de fechas

Buenas a todos;

Tengo una tabla llamada ACTUACIONES en la que hay dos campos de fecha, uno dedicado para la fecha de comienzo y otro para la fecha de finalización. Pues bien, necesitaría extraer las fechas que hay entre esos periodos, y guardarlos por ejemplo en un array. Y no se me ocurre como conseguirlas!!

Me echan un cable?

Gracias de antemano
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 16/11/2004, 04:01
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 14 años
Puntos: 0
Hola,
pero tu que quieres hacer?, obtener el tiempo que transcurre entre esas dos fechas?, si no es asi, puedes explicar mejor tu consulta?

un saludo,
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #3 (permalink)  
Antiguo 16/11/2004, 04:08
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Perdón si no me expliqué bien, deseo obtener en un array cada fecha que hay entre las dos dadas. No una resta, sino que si la inicial es 01-10-2004 y la final es 05-10-2004 pues que en un array se guarden:
$fecha[0]=02-10-2004;
$fecha[1]=03-10-2004;
$fecha[2]=04-10-2004;

O bien mucho mejor que me incluya en el propio array las fechas dadas por mí:
$fecha[0]=01-10-2004;
$fecha[1]=02-10-2004;
$fecha[2]=03-10-2004;
$fecha[3]=04-10-2004;
$fecha[4]=05-10-2004;

Mejor?
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 16/11/2004 a las 04:11
  #4 (permalink)  
Antiguo 16/11/2004, 13:27
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Ayuda, please!!..
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 17/11/2004 a las 03:37
  #5 (permalink)  
Antiguo 17/11/2004, 03:37
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Por favor señores, se aceptan sugerencias... Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #6 (permalink)  
Antiguo 17/11/2004, 06:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si dices trabajar con Base de datos (supongo que es así si hablas de "tablas") entonces lo que debes hacer es una consulta SQL adecuada .. eso ya te dará un "array" si usas xxx_fetch_array() como en cualquier otra ejecución de una consulta SQL de otro tipo.

Indica que BD usas para recomendarte la función adecuada .. por ejemplo Mysql tiene su BETWEEN que se usa para eso mismo para definir rangos de registros a ver y .. si esos campos de Fecha son tipo DATE mejor (y si no lo son deberías tratarlos como DATE o DATETIME o TIMESTAMP .. no un "varchar" por ejemplo).

Un saludo,
  #7 (permalink)  
Antiguo 17/11/2004, 10:02
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Hola Cluster, gracias por contestar;

La DB que uso es MySQL, y te confirmo que los tipos de dato que uso tanto para la fecha inicial como par la final es DATE. Necesito como comenté sacar un arreglo con cada una de las fechas que hay entre las dos que indico. Me da igual el formato de salida (si es AAAA-MM-DD o DD-MM-AAAA).

Gracias!!
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #8 (permalink)  
Antiguo 17/11/2004, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. ya te comenté que puedes usar BETWEEN del SQL de Mysql .. (que es lo mismo que: (min <= campo AND campo <= max). Al usar campos de fechas .. (DATE, etc) puedes usarlo así.

http://dev.mysql.com/doc/mysql/en/Co...Operators.html

Código PHP:
$fechas_rango=array();
$sql="SELECT fecha FROM tabla WHERE fecha BETWEEN '$fecha_minimo' AND '$fecha_maximo'";
$resultado=mysql_query($sql) or die (mysql_error());
while (
$row=mysql_fetch_array($resultado)){
   
$fechas_rango[]=$row['fecha'];

En $fechas_rango .. tienes tu array para que lo recorras como gustes .. es más .. en muchos casos podrías usar ese bucle que ya se usa para obtener el resultado de tu consulta en lugar de llevarlo a un array para volverlo a tener que recorrer con otro bucle.

Podrías ver el manual oficial de Mysql .. ahí tienes otra función más para usar: DATE_FORMAT() para que le des el formato que gustes a tu fecha directamente desde SQL ..
http://dev.mysql.com/doc/mysql/en/Da...functions.html

Un saludo,

Última edición por Cluster; 17/11/2004 a las 10:31
  #9 (permalink)  
Antiguo 17/11/2004, 10:49
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Lo voy a probar ahora mismo, pero según creo y para lo poco que dan mis conocimientos, ¿no devolvería esta consulta las fechas intermedias que tengo en mi DB? Si es así, no es lo que necesito, sino simplemente obtener los días que hay entre dos fechas que tengo en mi DB. Esto es: sólo tengo en una fila de mi DB el dato FECHA_INICIO y el dato FECHA_FINAL, y quiero guardar en un array todas las fechas que hay entre medias, pero todas las reales, no las que tengo en mi DB. Lo expliqué +ó- con un ejemplo en el tercer mensaje de este tema.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #10 (permalink)  
Antiguo 17/11/2004, 10:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
OK .. si son los días transcurridos .. si revisas los links que te puse en mi mensaje anterior podrás ver las funciones de Mysql para tal fin ..

En concreto a base de "TO_DAYS()" o bien DATEDIFF() (dependiendo de la versión de Mysql que uses) podrías hacerlo.

Un saludo,

PD: si tienes más dudas al respecto . .movemos el tema al foro de "Base de datos" que es donde se deben tratar estos temas de "SQL".
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:34.