Foros del Web » Programando para Internet » PHP »

imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

Estas en el tema de imprimir valores de fecha, correlativos teniendo fecha inicial y final, como? en el foro de PHP en Foros del Web. Hola que tal, lo que quiero hacer, intento y no me sale . es teniendo por ejemplo la fecha 25-05-2002 imprimir las siguientes fechas que ...
  #1 (permalink)  
Antiguo 30/11/2006, 12:18
 
Fecha de Ingreso: enero-2003
Mensajes: 122
Antigüedad: 21 años, 10 meses
Puntos: 1
Pregunta imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

Hola que tal,

lo que quiero hacer, intento y no me sale .

es teniendo por ejemplo la fecha 25-05-2002 imprimir las siguientes fechas que le siguen a esta quedando de la siguiente manera:

25-05-2002
26-05-2002
27-05-2002
28-05-2002
29-05-2002
30-05-2002
01-06-2002
.....
.....
..

hasta una fecha final por ejemplo: 09-10-2006

como puedo o tenria que hacer, muchas gracias
  #2 (permalink)  
Antiguo 02/12/2006, 16:53
 
Fecha de Ingreso: enero-2003
Mensajes: 122
Antigüedad: 21 años, 10 meses
Puntos: 1
alguien alguna idea?

gracias
  #3 (permalink)  
Antiguo 02/12/2006, 17:14
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
Código PHP:
//Obtienes la fecha
$fecha date ("d-m-Y");

//O bien la pones tu...
$fecha "25-05-2002";

/* Sabes que para obtener una fecha adyacente has de multiplicar.
 En este caso has de sumarle las 24 horas que constituyen
 un dia para que te de el dia siguiente. Con un resultado 
similar a este:  */

$manyana $fecha+(24*3600);


/* Ahora queremos obtener una lista, supongamos de 10 dias mas. */

$fecha "25-05-2002";
for (
$i=0$i<=10$i++) {

//Si es la primera le metemos 24 horas a la inicial.
if ($i == 0) {
$fecha[$i] = $fecha+(24*3600);
echo 
$fecha[$i];

//Si no es la primera... le metemos 24 horas a la anterior.
} else {
$fecha[$i] = $fecha[$i-1]+(24*3600);
echo 
$fecha[$i];
}

}

//Para acabar, esas fechas las puedes mostrar asi:

$mostrar_fecha[1] = date ("d-m-Y"$fecha[1]);
$mostrar_fecha[2] = date ("d-m-Y"$fecha[2]);
$mostrar_fecha[3] = date ("d-m-Y"$fecha[3]);

echo 
$mostrar_fecha[1];
..... 

Espero no equivocarme. Estoy entrando ahora en esto de las fechas..

Suerte
  #4 (permalink)  
Antiguo 04/12/2006, 08:56
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años
Puntos: 4
Pues yo había hecho algo hace ya un tiempo y que muestra otra forma de hacerlo:
http://www.forosdelweb.com/f18/ayuda-sumar-fechas-430859/
Espero que también te sea de utilidad o por lo menos te de una idea. Suerte
  #5 (permalink)  
Antiguo 05/12/2006, 20:50
 
Fecha de Ingreso: enero-2003
Mensajes: 122
Antigüedad: 21 años, 10 meses
Puntos: 1
buenisimo!!!!!

muchas gracias a los dos
  #6 (permalink)  
Antiguo 05/12/2006, 22:16
Avatar de Chikis
Usuario no validado
 
Fecha de Ingreso: agosto-2001
Ubicación: Cuernavaca, Morelos, Mexico
Mensajes: 170
Antigüedad: 23 años, 2 meses
Puntos: 0
Buenas!!.

Y por ejemplo como lo harian para contar las quincenas del mes.

Por ejemplo:

si por ejemplo un paciente se tiene que hacer una visita cada 15 dias tomando como por ejemplo los dias 15 y fin de mes? pero tomando en cuenta que los meses terminan o en 30 y 31 o 28 por febrero?

E imprimirlos en un listado.

Por ejemplo si el paciente viene el dia 6 de enero

empesar a contar el 31 de enero y de ahi cuente dias 14 y fin durante determinados meses ya sea 2 o 3.

Saludos.
  #7 (permalink)  
Antiguo 06/12/2006, 16:29
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años
Puntos: 4
Re: imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

Cita:
Iniciado por Chikis Ver Mensaje
si por ejemplo un paciente se tiene que hacer una visita cada 15 dias tomando como por ejemplo los dias 15 y fin de mes? pero tomando en cuenta que los meses terminan o en 30 y 31 o 28 por febrero?
Pues lo único que tienes que hacer es sumar los quince días a la función mktime. Para saber más sobre esta función checa este enlace:
http://www.php.net/manual/es/function.mktime.php
Pondrías tu código de esta manera:
Código PHP:
<?php
$fecha_inicial 
"14/02/2006"// fecha en la que el paciente se presenta
$suma_dias 15// dias para la proxima cita
$partesfi explode "/"$fecha_inicial ); // separamos el día, mes y año de la fecha inicial

// sumamos los días indicados en la variable $suma_dias a la $fecha_inicial
$proxima_cita mktime 000date ("$partesfi[1]"), date ("$partesfi[0]") + $suma_diasdate ("$partesfi[2]") );

echo 
"El paciente se presento el: ".$fecha_inicial."<br/>";
echo 
"Su proxima cita será: ".date "d/m/Y"$proxima_cita );
?>
y si quieres que se cuenten sólo los días habiles ( Lunes a Viernes ), harías lo siguiente:
Código PHP:
<?php
$fecha_inicial 
"06/12/2006"// fecha en la que el paciente se presenta
$suma_dias 15// dias para la proxima cita
$partesfi explode "/"$fecha_inicial ); // separamos el día, mes y año de la fecha inicial

function checa$operacion // esta función se encargará de sumar los dias indicados en $suma_dias
{
   
$fines_de_semana 0// esta variable servirá para saber cuantos sabados y domingos hay entre $fecha_inicial y los siguientes $suma_dias

   
for ( $e 1$e <= $operacion$e++ )
   {
      
$dia mktime 000date ("$partesfi[1]"), date ("$partesfi[0]") + $edate ("$partesfi[2]") );
      if ( 
date"w"$dia ) == || date"w"$dia ) == // si $dia es igual a domingo (0) o sabado (6)
         
$fines_de_semana += 1// agregamos una unidad a la variable $fines_de_semana para indicar que se encontro un sabado o domingo
   
}

   return 
$fines_de_semana;
}

// checamos cuantos sabados y domingos hay en los días indicados
$suma1 checa $suma_dias );
$suma2 checa $suma_dias $suma1 );

$suma2 >= $suma1 $proxima_cita $suma_dias $suma2 $proxima_cita $suma_dias $suma1;

echo 
"El paciente se presento el: ".$fecha_inicial."<br/>";
echo 
"Su proxima cita será: ".date"d/m/Y"mktime 000date ("$partesfi[1]"), date ("$partesfi[0]") + $proxima_citadate ("$partesfi[2]") ) );
?>
Espero sea lo que necesitabas o por lo menos te de una idea para hacer funcionar lo que necesitas. Suerte
  #8 (permalink)  
Antiguo 07/12/2006, 07:49
Avatar de Chikis
Usuario no validado
 
Fecha de Ingreso: agosto-2001
Ubicación: Cuernavaca, Morelos, Mexico
Mensajes: 170
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

Eso esta perfecto!!! el primer ejemplo es el que me sirve muy bien.

Solo una ayuda mas

Si quiero mostrar los dias 15 y 30 de los siguientes 3 o 4 meses?

Estaba pensando en un For o While pero la neta es que no me acuerdo.

Si uso FOR
for ($i=0; $i<=6; $i++) {

Hago que se repita 6 veces por que son 6 quincenas en 3 meses?

En que parte tengo que poner para que me sume por que hasta ahorita me salio esto jiji:

Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006El paciente se presento el: 15/12/2006
Su proxima cita será: 30/12/2006

SAludos.
  #9 (permalink)  
Antiguo 07/12/2006, 10:50
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años
Puntos: 4
Re: imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

La solución la encuentras en este código:
Código PHP:
<?php
function quincenas$meses$sum_dias$fecha_ini // función que se encargará de imprimir las proximas citas
{
   
$dias = array ( 'Domingo''Lunes''Martes''Miercoles''Jueves''Viernes''Sabado' ); // este array nos servira para mostrar el día de la proxima cita

   
$partesfi explode "/"$fecha_ini ); // separamos el día, mes y año de la fecha inicial

   
$quincenas $meses 2// multiplicamos por dos los meses que se le pasaron a la función ya que 1 mes tiene 2 quincenas

   
for ( $e 1$e <= $quincenas$e++ )
   {
      
$cuantos_dias $sum_dias $e;
      
$proxima_cita mktime 000date("$partesfi[1]"), date("$partesfi[0]") + $cuantos_diasdate("$partesfi[2]") );
      
$dia date"w"$proxima_cita );
      echo 
"&nbsp;&nbsp;&nbsp;<b>".$dias[$dia]."</b> ".date"d/m/Y"$proxima_cita )."<br/>"// imprimimos en pantalla las proximas citas
   
}
}

$fecha_inicial "07/12/2006"// fecha en la que el paciente se presenta
$suma_dias 15// dias para la proxima cita
$num_meses 3// número de los siguientes meses que quieres mostrar

echo "El paciente se presento el: ".$fecha_inicial."<br/>";
echo 
"Sus proximas citas serán:<br/>";
quincenas$num_meses$suma_dias$fecha_inicial ); // le pasamos los parametros a la función
?>
Por favor lee los comentarios (son los que se encuentran pintados de color amarillo), para entender que es lo que hace esta secuencia de comandos. Hojala sea lo que necesitabas o por lo menos te de una idea. Suerte
  #10 (permalink)  
Antiguo 07/12/2006, 16:31
Avatar de Chikis
Usuario no validado
 
Fecha de Ingreso: agosto-2001
Ubicación: Cuernavaca, Morelos, Mexico
Mensajes: 170
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: imprimir valores de fecha, correlativos teniendo fecha inicial y final, como?

Orale gracias!!!.

La neta es que como te daras cuenta no se programar muy bien, le entiendo y todo y se mas o menos de que me hablan pero uff.. me cuesta tanto trabajo y mis tios se la pasan pide y pide cosas.

Te agradezco tu apoyo.

Saludos. y estare haciendo pruebas.
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 22:09.