Foros del Web » Programando para Internet » PHP »

cambiar de dia inicial en calendario

Estas en el tema de cambiar de dia inicial en calendario en el foro de PHP en Foros del Web. Hola! la verdad que me ayudáis muchísimo a resolver mis dudas y como soy bastante novato, me acaba de surgir otra. Mi calendario comienza en ...
  #1 (permalink)  
Antiguo 24/03/2009, 12:13
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
cambiar de dia inicial en calendario

Hola! la verdad que me ayudáis muchísimo a resolver mis dudas y como soy bastante novato, me acaba de surgir otra. Mi calendario comienza en Domingo en lugar de Lunes, sabéis qué hice mal? Muchas gracias a todos! ;)


Código PHP:
$mess $_GET['mess'];
$anio $_GET['anio'];
if(
$mess == "" || $anio == ""){
    
$anio date("Y");
    
$mess date("n");
}
    
$ultimo date("t",mktime(000$mess1$anio));
    if(
$mess == '12' || $mess == '1'){
        if(
$mess == '12'){
            
$next 1;
            
$prev $mess -1;
            
$anion $anio 1;
            
$aniop $anio;
        }
        if(
$mess == '1'){
            
$next $mess 1;
            
$prev 12;
            
$anion $anio;
            
$aniop $anio -1;        
        }
    }else{
        
$next $mess 1;
        
$prev $mess 1;    
        
$aniop $anio;
        
$anion $anio;
    }
    echo 
"<tr><th colspan=7>$anio</th></tr><tr>";
    echo 
"<tr><td><a href='".$_SERVER['PHP_SELF']."?mess=$prev&anio=$aniop'><<</a></td><th colspan=5>$mes[$mess]</th><td><a href='".$_SERVER['PHP_SELF']."?mess=$next&anio=$anion'>>></td></tr><tr>";
    echo 
"<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td>S</td></tr>";
    
$diaa "1";
    
$diaz cargarmatriz($ultimo,$mess,$anio);
    
$j 0;
    while(
$diaa <= $ultimo){
        
$dia date("D",mktime(0,0,0,$mess,$diaa,$anio)); # retorna el dia de la semana en letras...
        
$fecha date("j",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia del mes en 01/31
        
$dia_semana date("w",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia de la semana en numero
        
$evento $anio."-".$mes_num[$mess]."-".$fecha;
        if(
$dia == "Sun"){
            echo 
"</tr><tr>";
        }
        if(
$fecha == "1"){
            
$i=0;
            while(
$i != $dia_semana){
                echo 
"<td>&nbsp;</td>";
                
$i++;
            }
        }
        if(
$anio == date("o") && $mes[$mess] == $mes[date("n")] && $fecha == date("j")){
            if(
$fecha == $diaz[$j] ){
                echo 
"<td class='tddia' align='center'><b><a href='mostrar.php?evento=$evento' target='evento'>$fecha</a></b></td>";
                
$j++;
            }else{
                echo 
"<td class='calendario' align='center'><b>$fecha</b></td>";
            }
        }else{
            if(
$fecha == $diaz[$j] ){
                echo 
"<td class='tddia' align='center'><b><a href='mostrar.php?evento=$evento' target='evento'>$fecha</a></b></td>";
                
$j++;
            }else{
                echo 
"<td align='center'>$fecha</td>";
            }
        }
        
$diaa++;
    }
    echo 
"</tr>"
  #2 (permalink)  
Antiguo 24/03/2009, 12:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: cambiar de dia inicial en calendario

Lo programaste para que la semana comience en domingo:

Código php:
Ver original
  1. // Ya desde aqui se ve que no tenias intenciones de que comenzara en lunes
  2. echo "<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td>S</td></tr>";
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/03/2009, 12:25
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: cambiar de dia inicial en calendario

Probé de cambiarlo, como dices, pero no me deja..me desmonta el calendario..
  #4 (permalink)  
Antiguo 24/03/2009, 13:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: cambiar de dia inicial en calendario

Pardon moi?

No te sugeri hacer algun cambio, solo la observacion de que no parece que tuvieras intencion de comenzar la semana en lunes... pero bueno, sugerencias:

1- En esa barra de titulos pon el lunes como primer dia y el domingo como ultimo
2- No sirve de mucho la variable $dia, bien puedes usar solo $dia_semana

Código php:
Ver original
  1. // Forza a que el domingo sea el ultimo dia de la semana
  2. if($dia_semana == 0)
  3.     $dia_semana = 7;
  4.  
  5. // Si aun no haz comenzado a mostrar los dias
  6.         if($fecha == "1"){
  7.             echo '<tr>'; // Faltaba iniciar esta linea
  8.             $i=1;
  9.             while($i != $dia_semana){
  10.                 echo "<td>&nbsp;</td>";
  11.                 $i++;
  12.             }
  13.         }
  14.  
  15. // Verifica si hay que finalizar la semana al final del blucle:
  16.     if($dia_semana == 7)
  17.         echo '</tr><tr>';

Modifica tu script y nos cuentas como te fue.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/03/2009, 10:28
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: cambiar de dia inicial en calendario

Hola! gracias por la respuesta. He modificado el script, pero me adelanta un dia, por ejemplo el 27 de marzo es sábado en lugar de viernes. Este es el code modificado


Código PHP:
 $diaa "1"
    
$diaz cargarmatriz($ultimo,$mess,$anio); 
    
$j 0
    while(
$diaa <= $ultimo){ 
        
//$dia = date("N",mktime(0,0,0,$mess,$diaa,$anio)); # retorna el dia de la semana en letras... 
        
$fecha date("j",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia del mes en 01/31 
        
$dia_semana date("w",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia de la semana en numero 
        
$evento $anio."-".$mes_num[$mess]."-".$fecha
       if(
$dia_semana == 0)    $dia_semana 7// Si aun no haz comenzado a mostrar los dias
        
if($fecha == "1"){
         echo 
'<tr>'// Faltaba iniciar esta linea 
         
$i=0;
         while(
$i != $dia_semana){ 
         echo 
"<td>&nbsp;</td>";
         
$i++;
         } 
                } 
// Verifica si hay que finalizar la semana al final del blucle:
         
if($dia_semana == 7)        echo '</tr><tr>';
        
      
        if(
$anio == date("0") && $mes[$mess] == $mes[date("n")] && $fecha == date("j")){ 
            if(
$fecha == $diaz[$j] ){ 
                echo 
"<td class='tddia' align='center'><b><a href='mostrar.php?evento=$evento' target='evento'>$fecha</a></b></td>"
                
$j++; 
            }else{ 
                echo 
"<td class='calendario' align='center'><b>$fecha</b></td>"
            } 
        }else{ 
            if(
$fecha == $diaz[$j] ){ 
                echo 
"<td class='tddia' align='center'><b><a href='mostrar.php?evento=$evento' target='evento'>$fecha</a></b></td>"
                
$j++; 
            }else{ 
                echo 
"<td align='center'>$fecha</td>"
            } 
        } 
        
$diaa++; 
    } 
    echo 
"</tr>"
  #6 (permalink)  
Antiguo 27/03/2009, 11:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: cambiar de dia inicial en calendario

Copiar y pegar sin leer ni comprender nunca es una buena opcion, hay que analizar que hace cada linea de codigo sugerida, ver si es lo que quieres y entonces, colocarla (y/o adaptarla) en el lugar que corresponda en tu script.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 27/03/2009, 11:17
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: cambiar de dia inicial en calendario

Cita:
Iniciado por Triby Ver Mensaje
Copiar y pegar sin leer ni comprender nunca es una buena opcion, hay que analizar que hace cada linea de codigo sugerida, ver si es lo que quieres y entonces, colocarla (y/o adaptarla) en el lugar que corresponda en tu script.
Pero si llevo 2 días haciendo modificaciones y rompiéndome los cuernos, hombre... te puse el script después de manejarlo bastante, pero bueno.. qué se le va a hacer. Ningún problema.
  #8 (permalink)  
Antiguo 27/03/2009, 11:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: cambiar de dia inicial en calendario

Cita:
Iniciado por charlyta
Pero si llevo 2 días haciendo modificaciones y rompiéndome los cuernos
Seguro que lo manejaste bastante?

Fijate en el codigo hasta te puse comentarios de lo que intentaba con cada cosa o donde acomodarlo, como el siguiente bloque:

Código:
// Verifica si hay que finalizar la semana al final del blucle:
    if($dia_semana == 7)
        echo '</tr><tr>';
Claramente dice: al final del blucle, pero tu lo colocaste todo junto.

Aparte del copy & paste, no creo que sea la causa de que se te recorra 1 dia el calendario, pero si debe estarte haciendo un relajo con la tabla html.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 27/03/2009, 12:01
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: cambiar de dia inicial en calendario

Perdona...aún no lo entiendo o te he entendido mal.. prometo darle vueltas y ver cómo solucionarlo. Gracias por el interés y el tiempo.
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 10:59.