Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2005, 15:51
oxigen
 
Fecha de Ingreso: mayo-2005
Mensajes: 4
Antigüedad: 18 años, 11 meses
Puntos: 1
Exclamación Fechas en PHP

Hola gracias por leer mi post.

Ahora, lo que pasa es que estoy tratando de desarrollar un calendario semanal; o sea que me muestre algo asi por ejemplo:
__________________________________________________ ___________
| Domingo | Lunes | Martes |Miercoles| Jueves | Viernes | Sabado |
|29-05-05 |30-05-05 |31-05-05|01-06-05|02-06-05|03-06-05|04-06-05|
================================================== ======
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
-----------------------------------------------------------------------

Y bueno mi problema empieza cuando obtengo el dia de hoy con su nombre, por ejemplo hoy es: lunes, 31 may 05.

Y como no se si exista alguna funcion para sumar con fechas, por ejemplo que:

31-05-2005 + 1 = 01-06-2005;
31-05-2005 + 2 = 02-06-2005;
31-05-2005 + 9 = 09-06-2005;

Por lo que me estoy matando haciendo este churrisimo en php del cual aun no termino, pero tengo la esperanza de que alguien me pueda ayudar diciendome que si existe alguna funcion que pueda yo usar para dicha tarea.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
extract($_POST);
$dias=$fecha;
$year =$dias[0].$dias[1].$dias[2].$dias[3];
$month =$dias[5].$dias[6];
$day =$dias[8].$dias[9];

if($month=='01' || $month=='03' || $month=='05' || $month=='07' || $month=='08' || $month=='10' || $month=='12')
{
switch($month)
{
case '01' : //En caso de que sea enero
$month_max=31;
$ant_month='12';
$act_month='01';
$next_month='02';
switch($dia)
{ //--------------------------------------------------------------------------------------------------|
case 'Domingo' : $domingo=$year.'-'.$month.'-'.$hoy; //En esta posicion nos encontramos situados trab.
$lunes=$year.'-'.$month.'-'.$hoy+1;
if($hoy+1>$month_max)
{
$hoy=1;
$month=$next_month;
$lunes=$year.'-'.$month.'-'.$hoy;
$hoy=0;
}
$martes=$year.'-'.$month.'-'.$hoy+2;
$miercoles=$year.'-'.$month.'-'.$hoy+3;
$jueves=$year.'-'.$month.'-'.$hoy+4;
$viernes=$year.'-'.$month.'-'.$hoy+5;
$sabado=$year.'-'.$month.'-'.$hoy+6;
break;
//--------------------------------------------------------------------------------------------------|
case 'Lunes' : $domingo=$year.'-'.$month.'-'.$hoy-1;
if($hoy-1<1)
{
$month=$ant_month;
$domingo=$year.'-'.$month.'-'.$month_max-1;
$hoy=1;
$month=$act_month;
}
$lunes=$year.'-'.$month.'-'.$hoy; //En esta posicion nos encontramos situados trab.
$martes=$year.'-'.$month.'-'.$hoy+1;
$miercoles=$year.'-'.$month.'-'.$hoy+2;
$jueves=$year.'-'.$month.'-'.$hoy+3;
$viernes=$year.'-'.$month.'-'.$hoy+4;
$sabado=$year.'-'.$month.'-'.$hoy+5;
break;
//--------------------------------------------------------------------------------------------------|
case 'Martes' : $domingo=$year.'-'.$month.'-'.$hoy-1;
if($domingo<1)
{
$domingo=31;
$hoy=1;
$month='0';
}
$lunes=$year.'-'.$month.'-'.$hoy;
$martes=$year.'-'.$month.'-'.$hoy+1; //En esta posicion nos encontramos situados trab.
$miercoles=$year.'-'.$month.'-'.$hoy+2;
$jueves=$year.'-'.$month.'-'.$hoy+3;
$viernes=$year.'-'.$month.'-'.$hoy+4;
$sabado=$year.'-'.$month.'-'.$hoy+5;
break;
//--------------------------------------------------------------------------------------------------|
case 'Miercoles' :

break;
//--------------------------------------------------------------------------------------------------|
case 'Jueves' :

break;
//--------------------------------------------------------------------------------------------------|
case 'Viernes' :

break;
//--------------------------------------------------------------------------------------------------|
case 'Sabado' :

break;
}
break;
case '03' : //caso de que sea marzo
if (((fmod($year,4)==0) and (fmod($year,100)!=0)) or (fmod($year,400)==0))
{
$month_max=29;
}
else
{
$month_max=28;
}
$ant_month='02';
$act_month='03';
$next_month='04';

break;
case '05' : //caso de que sea mayo
$month_max=30;
$ant_month='04';
$act_month='05';
$next_month='06';

break;
case '07' : //caso de que sea julio
$month_max=31;
$ant_month='06';
$act_month='07';
$next_month='08';

break;
case '10' : //caso de que sea octubre
$month_max=30;
$ant_month='09';
$act_month='10';
$next_month='11';

break;
case '12' : //caso de que sea diciembre
$month_max=30;
$ant_month='11';
$act_month='12';
$next_month='01';
break;
}
else if($month=='04' || $month=='06' || $month=='09' || $month=='11')
{
switch($month)
{
case '04' : //caso de que sea abril
$month_max=31;
$ant_month='03';
$act_month='04';
$next_month='05';

break;
case '06' : //caso de que sea junio
$month_max=31;
$ant_month='05';
$act_month='06';
$next_month='07';

break;
case '09' : //caso de que sea septiembre
$month_max=31;
$ant_month='08';
$act_month='09';
$next_month='10';

break;
case '11' : //caso de que sea noviembre
$month_max=31;
$ant_month='10';
$act_month='11';
$next_month='12';
break;
}
}
else
{
switch($month)
{
case '02' : //caso de que sea febrero
$month_max=31;
$ant_month='01';
$act_month='02';
$next_month='03';

break;
}
}



?>


</body>
</html>

Como pueden ver si termino la implemetacion para la primera semana osea de domingo a sabado de enero, con las variables que tengo por mes, solo copio el mismo codigo para las semanas de los meses subsecuentes y mi codigo correria(bueno ... eso espero; pero creo que la logica esta bien).

Espero que alguien me pueda ayudar.

Saludos, Vic!

Última edición por oxigen; 31/05/2005 a las 15:55 Razón: para mejorar el envio de respuestas de mi pregunta a mi mail