Foros del Web » Programando para Internet » PHP »

Modificar script de calendario

Estas en el tema de Modificar script de calendario en el foro de PHP en Foros del Web. Hola buenas estoy modificando este script y la funcion esque me comienza el domingo y a ver si alguien me puediera modificar el script donde ...
  #1 (permalink)  
Antiguo 06/04/2010, 10:05
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Modificar script de calendario

Hola buenas estoy modificando este script y la funcion esque me comienza el domingo y a ver si alguien me puediera modificar el script donde comenzase el lunes y acabase el domingo.

Código PHP:
<?
class calendario{
var 
$GRABAR;
    function 
calendario(){
    global 
$conexion;
    global 
$DOMINIOx;
    global 
$DOMINIOx_ssl;
    
$this->GRABAR $GRABAR;
    }
    function 
mes($GRABAR){
$tipo_semana 1;
$tipo_mes 1;

$MESCOMPLETO[1] = 'Enero';
$MESCOMPLETO[2] = 'Febrero';
$MESCOMPLETO[3] = 'Marzo';
$MESCOMPLETO[4] = 'Abril';
$MESCOMPLETO[5] = 'Mayo';
$MESCOMPLETO[6] = 'Junio';
$MESCOMPLETO[7] = 'Julio';
$MESCOMPLETO[8] = 'Agosto';
$MESCOMPLETO[9] = 'Septiembre';
$MESCOMPLETO[10] = 'Octubre';
$MESCOMPLETO[11] = 'Noviembre';
$MESCOMPLETO[12] = 'Diciembre';

$MESABREVIADO[1] = 'Ene';
$MESABREVIADO[2] = 'Feb';
$MESABREVIADO[3] = 'Mar';
$MESABREVIADO[4] = 'Abr';
$MESABREVIADO[5] = 'May';
$MESABREVIADO[6] = 'Jun';
$MESABREVIADO[7] = 'Jul';
$MESABREVIADO[8] = 'Ago';
$MESABREVIADO[9] = 'Sep';
$MESABREVIADO[10] = 'Oct';
$MESABREVIADO[11] = 'Nov';
$MESABREVIADO[12] = 'Dic';

$SEMANACOMPLETA[0] = 'Domingo';
$SEMANACOMPLETA[1] = 'Lunes';
$SEMANACOMPLETA[2] = 'Martes';
$SEMANACOMPLETA[3] = 'Miércoles';
$SEMANACOMPLETA[4] = 'Jueves';
$SEMANACOMPLETA[5] = 'Viernes';
$SEMANACOMPLETA[6] = 'Sábado';

$SEMANAABREVIADA[0] = 'Dom';
$SEMANAABREVIADA[1] = 'Lun';
$SEMANAABREVIADA[2] = 'Mar';
$SEMANAABREVIADA[3] = 'Mie';
$SEMANAABREVIADA[4] = 'Jue';
$SEMANAABREVIADA[5] = 'Vie';
$SEMANAABREVIADA[6] = 'Sáb';

////////////////////////////////////
if($tipo_semana == 0){
$ARRDIASSEMANA $SEMANACOMPLETA;
}elseif(
$tipo_semana == 1){
$ARRDIASSEMANA $SEMANAABREVIADA;
}
if(
$tipo_mes == 0){
$ARRMES $MESCOMPLETO;
}elseif(
$tipo_mes == 1){
$ARRMES $MESABREVIADO;
}

if(!
$dia$dia date(d);
if(!
$mes$mes date(n);
if(!
$ano$ano date(Y);

$TotalDiasMes date(t,mktime(0,0,0,$mes,$dia,$ano));
$DiaSemanaEmpiezaMes date(w,mktime(0,0,0,$mes,1,$ano));
$DiaSemanaTerminaMes date(w,mktime(0,0,0,$mes,$TotalDiasMes,$ano));
$EmpiezaMesCalOffset $DiaSemanaEmpiezaMes;
$TerminaMesCalOffset $DiaSemanaTerminaMes;
$TotalDeCeldas $TotalDiasMes $DiaSemanaEmpiezaMes $TerminaMesCalOffset;


if(
$mes == 1){
$MesAnterior 12;
$MesSiguiente $mes 1;
$AnoAnterior $ano 1;
$AnoSiguiente $ano;
}elseif(
$mes == 12){
$MesAnterior $mes 1;
$MesSiguiente 1;
$AnoAnterior $ano;
$AnoSiguiente $ano 1;
}else{
$MesAnterior $mes 1;
$MesSiguiente $mes 1;
$AnoAnterior $ano;
$AnoSiguiente $ano;
$AnoAnteriorAno $ano 1;
$AnoSiguienteAno $ano 1;
}

print 
"<table style=\"font-family:arial;font-size:9px\" bordercolor=navy align=center border=0 cellpadding=1 cellspacing=1>";
print 
" <tr>";
print 
" <td colspan=10>";
print 
" <table border=0 align=center width=\"1%\" style=\"font-family:arial;font-size:9px\">";
print 
" <tr>";
print 
" <td width=\"1%\"><a href=\"$PHP_SELF?mes=$mes&ano=$AnoAnteriorAno\"><img src=atras2.gif border=0></a></td>";
print 
" <td width=\"1%\"><a href=\"$PHP_SELF?mes=$MesAnterior&ano=$AnoAnterior \"><img src=atras.gif border=0></a></td>";
print 
" <td width=\"1%\" colspan=\"1\" align=\"center\" nowrap><b>".$ARRMES[$mes]." - $ano</b></td>";
print 
" <td width=\"1%\"><a href=\"$PHP_SELF?mes=$MesSiguiente&ano=$AnoSiguien te\"><img src=avanzar.gif border=0></a></td>";
print 
" <td width=\"1%\"><a href=\"$PHP_SELF?mes=$mes&ano=$AnoSiguienteAno\">< img src=avanzar2.gif border=0></a></td>";
print 
" </tr>";
print 
" </table>";
print 
" </td>";
print 
"</tr>";
print 
"<tr>";
foreach(
$ARRDIASSEMANA AS $key){
print 
"<td bgcolor=#ccccff><b>$key</b></td>";
}
print 
"</tr>";

for(
$a=1;$a <= $TotalDeCeldas;$a++){
if(!
$b$b 0;
if(
$b == 7$b 0;
if(
$b == 0) print '<tr>';
if(!
$c$c 1;
if(
$a $EmpiezaMesCalOffset AND $c <= $TotalDiasMes){
if(
$c == date(d) && $mes == date(m) && $ano == date(Y)){
print 
"<td bgcolor=\"#ffcc99\" align=\"center\" title=\"Crear nota para hoy\">";
    print 
'<a href="">';
        print 
"<strong>$c</strong>";
    print 
'</a>';
print 
"<br></td>";
}elseif(
$b == OR $b == 6){
print 
"<td bgcolor=#99cccc align=\"center\">";
    print 
'<a href="" title="Crear nota para el día '.$c.'">';
        print 
"$c";
    print 
'</a>';
print
"</td>";
}else{
print 
"<td bgcolor=\"#EEEEEE\" align=\"center\">";
    print 
'<a href="" title="Crear nota para el día '.$c.'">';
        print 
"$c";
    print 
'</a>';
print
"</td>";
}
$c++;
}else{
print 
"<td> </td>";
}
if(
$b == 6) print '</tr>';
$b++;
}
print 
"<tr><td align=center colspan=10></a></td></tr>";
print 
"</table>";
    }
    function 
semana($GRABAR){
        
    }
}
?>
Muchas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #2 (permalink)  
Antiguo 06/04/2010, 10:06
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Modificar script de calendario

Cambia los valores de:

$SEMANACOMPLETA[0] = 'Domingo';
$SEMANACOMPLETA[1] = 'Lunes';
$SEMANACOMPLETA[2] = 'Martes';
$SEMANACOMPLETA[3] = 'Miércoles';
$SEMANACOMPLETA[4] = 'Jueves';
$SEMANACOMPLETA[5] = 'Viernes';
$SEMANACOMPLETA[6] = 'Sábado';

$SEMANAABREVIADA[0] = 'Dom';
$SEMANAABREVIADA[1] = 'Lun';
$SEMANAABREVIADA[2] = 'Mar';
$SEMANAABREVIADA[3] = 'Mie';
$SEMANAABREVIADA[4] = 'Jue';
$SEMANAABREVIADA[5] = 'Vie';
$SEMANAABREVIADA[6] = 'Sáb';



Creo que podria servir.
  #3 (permalink)  
Antiguo 06/04/2010, 10:31
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Modificar script de calendario

Si pero el array si lo cambio no comienza a contarme bien los días.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #4 (permalink)  
Antiguo 06/04/2010, 14:16
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Modificar script de calendario

mmmmmmm, pues la solucion estaria por modificar la letra que le pasamos a la funcion date(), mira aqui: http://php.net/manual/en/function.date.php

la "w" representa el dia de la semana, siendo 0 para el domingo hasta 6 para el lunes
la "N" nos da 1 para lunes hasta 7 para domingo

Por lo tanto cambia:

Código PHP:
$DiaSemanaEmpiezaMes date(w,mktime(0,0,0,$mes,1,$ano));
$DiaSemanaTerminaMes date(w,mktime(0,0,0,$mes,$TotalDiasMes,$ano)); 
por:

Código PHP:
$DiaSemanaEmpiezaMes date(N,mktime(0,0,0,$mes,1,$ano));
$DiaSemanaTerminaMes date(N,mktime(0,0,0,$mes,$TotalDiasMes,$ano)); 
y luego cambias

Código PHP:
$SEMANACOMPLETA[0] = 'Domingo';
$SEMANACOMPLETA[1] = 'Lunes';
$SEMANACOMPLETA[2] = 'Martes';
$SEMANACOMPLETA[3] = 'Miércoles';
$SEMANACOMPLETA[4] = 'Jueves';
$SEMANACOMPLETA[5] = 'Viernes';
$SEMANACOMPLETA[6] = 'Sábado';

$SEMANAABREVIADA[0] = 'Dom';
$SEMANAABREVIADA[1] = 'Lun';
$SEMANAABREVIADA[2] = 'Mar';
$SEMANAABREVIADA[3] = 'Mie';
$SEMANAABREVIADA[4] = 'Jue';
$SEMANAABREVIADA[5] = 'Vie';
$SEMANAABREVIADA[6] = 'Sáb'
Por:

Código PHP:
$SEMANACOMPLETA[1] = 'Lunes';
$SEMANACOMPLETA[2] = 'Martes';
$SEMANACOMPLETA[3] = 'Miércoles';
$SEMANACOMPLETA[4] = 'Jueves';
$SEMANACOMPLETA[5] = 'Viernes';
$SEMANACOMPLETA[6] = 'Sábado';
$SEMANACOMPLETA[7] = 'Domingo';

$SEMANAABREVIADA[1] = 'Lun';
$SEMANAABREVIADA[2] = 'Mar';
$SEMANAABREVIADA[3] = 'Mie';
$SEMANAABREVIADA[4] = 'Jue';
$SEMANAABREVIADA[5] = 'Vie';
$SEMANAABREVIADA[6] = 'Sáb'
$SEMANAABREVIADA[7] = 'Dom'
  #5 (permalink)  
Antiguo 06/04/2010, 22:21
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Modificar script de calendario

Esta todo correcto pero veo que el dia 1 de Abril me comienza el viernes y seria el jueves dia 1.

He modificado

$DiaSemanaEmpiezaMes = date(N,mktime(0,0,0,$mes,1,$ano));
$DiaSemanaTerminaMes = date(N,mktime(0,0,0,$mes,$TotalDiasMes,$ano));

por

$DiaSemanaEmpiezaMes = date(N,mktime(0,0,0,$mes,0,$ano));
$DiaSemanaTerminaMes = date(N,mktime(0,0,0,$mes,$TotalDiasMes,$ano));


Es correcto? Ahora me comenzaria hacerlo el jueves dia 1 no el viernes dia 1.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #6 (permalink)  
Antiguo 06/04/2010, 22:49
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Modificar script de calendario

También e modificado

elseif($b == 0 OR $b == 6){
print "<td bgcolor=#99cccc align=\"center\">";
print '<a href="" title="Crear nota para el día '.$c.'">';
print "$c";
print '</a>';
print"</td>";
}else{

Ya que el 0 y el 6 ahora seria 6 y el 7 domingo para el color del fin de semana. Gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #7 (permalink)  
Antiguo 07/04/2010, 02:50
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Modificar script de calendario

Lo mejor es que entiendas la funcion date() y por supuesto vayas probando todo cambiando la fecha de tu windows y haciendo echo's para ver que todo va tal como tu quieres.
  #8 (permalink)  
Antiguo 07/04/2010, 06:17
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Modificar script de calendario

Si probado y funcionando gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Etiquetas: calendario, modificar
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 05:48.