Código de PHP - Calendario

Calendariográfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(15)
Publicado el 18 de Junio del 2002 por Ing. Gabriel Humberto
58.054 visualizaciones desde el 18 de Junio del 2002. Una media de 77 por semana
Muestra un calendario. Permite desplazarte por los diferentes meses y años.

Versión 1
estrellaestrellaestrellaestrellaestrella(15)

Publicado el 18 de Junio del 2002gráfica de visualizaciones de la versión: Versión 1
58.055 visualizaciones desde el 18 de Junio del 2002. Una media de 77 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?
$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 = 6 - $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=$AnoSiguiente\"><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\">$c<br></td>";
		}elseif($b == 0 OR $b == 6){
			print "<td bgcolor=#99cccc>$c</td>";
		}else{
			print "<td bgcolor=\"#EEEEEE\">$c</td>";
		}
		$c++;
	}else{
		print "<td> </td>";
	}
	if($b == 6) print '</tr>';
	$b++;
}
print "<tr><td align=center colspan=10></a></td></tr>";
print "</table>";
?>



Comentarios sobre la versión: Versión 1 (15)

gabriel montaño
19 de Junio del 2002
estrellaestrellaestrellaestrellaestrella
me ayuda bastante que publiquen ejemplo claros como este... gracias por el apoyo.

Es un ejemplo que yo que soy estudiante me sirve mucho

Saludos desde México D.F.
Responder
webmaster
06 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Mira Pana esta bien cool solo faltaron las imagenes si las tienes deja un comentario con la direccion
Responder
Carlos
02 de Noviembre del 2002
estrellaestrellaestrellaestrellaestrella
No lo llegue a probar pero de un primer vistazo vi un error que me ocurrio a mi... al usar esta linea de codigo:

$TotalDiasMes = date(t,mktime(0,0,0,$mes,$dia,$ano));

El calendario no pasara de 1970 hacia atras, la funcion Date() devolvera un error... je je je
En fin, se arregla muy facilmente, la cosa es pensar un poquito ;-)

Un saludo
Responder
victor nava
06 de Octubre del 2004
estrellaestrellaestrellaestrellaestrella
Muy util pararealizar sistemas que interactuencon rangos de fechas, muy personalizable
Responder
Bueno !!!
03 de Febrero del 2005
estrellaestrellaestrellaestrellaestrella
Está muy bueno el calendario !!!

Y es verdad solo faltan los archivos gif y sería de lujo !!!
Responder
sakuragi
10 de Noviembre del 2005
estrellaestrellaestrellaestrellaestrella
lo acabo de probar y me percate

que la fecha de noviembre 2005 me pone 31 dias y a diciembre 30

alguien sabe por que le pasa esto?

saludos
Responder
gabriel bojorquez
23 de Noviembre del 2005
estrellaestrellaestrellaestrellaestrella
no puede ser amigo .. yo lo tengo instalado en algunas paginas .. por ejemplo en www.ceesonora.org.mx y jala todo perfecto .. checalo si gustas ahi
Responder
AMG
20 de Febrero del 2007
estrellaestrellaestrellaestrellaestrella
Muy buen codigo, claro y sencillo, muchas gracias por este ejemplo.
Responder
Yayconic Masis Reyes
06 de Abril del 2007
estrellaestrellaestrellaestrellaestrella
Muy buenas ...

Te felicito por el script ...

Pero tengo un problema, y es que no funciona sobre php5, que cambios debo hacerle para que funcione.

Mi correo es: limoncenter@yahoo.com

GRACIAS.
Responder
wendy
16 de Abril del 2009
estrellaestrellaestrellaestrellaestrella
ta chevere
Responder
Wraven
26 de Junio del 2009
estrellaestrellaestrellaestrellaestrella
Bueno tengo que admitir que es buen codigo pero tiene algunos errores para por decirlo asi php5 y me parece que son simplemente de atencion, ". <--- ese o este --->." separador de variable dentro de el codigo html es lo que falla en un par de lineas, por ejemplo la que recuerdo del año y a mi gusto personal yo transforme las c del codigo para crear columnas y celdas en $c, buen codigo
Responder
jairo mendez
20 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
Gabriel me podria hacer el valor de dqarme todas la indicaciones para poder colocarlo en miweb. gracias
Responder
Maribel
10 de Marzo del 2012
estrellaestrellaestrellaestrellaestrella
HOLA ME PODRIAS DECIR COMO PUEDO SOLUCIONAR LOS ERRORE, QUISIERA PONERLO EN UNA WEB PERO NO PUEDO CORREGIR LOS ERRORES.

me marca error al dar clic en la imagen de adelante, en el mes, me da error en estas tres lineas????..

$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));
Responder
Luis Castro Solar
14 de Junio del 2012
estrellaestrellaestrellaestrellaestrella
funciona correctamente si cambias:
Esto
if( ! isset ($dia)) $dia = date(d);
if( ! isset ($mes)) $mes = date(n);
if( ! isset ($ano)) $ano = date(Y);

POR ESTO
if( ! isset($_GET['dia'])) $dia = date(d); else $dia = $_GET['dia'];
if( ! isset($_GET['mes'])) $mes = date(n); else $mes = $_GET['mes'];
if( ! isset($_GET['ano'])) $ano = date(Y); else $ano = $_GET['ano'];

SALUDOS
Responder
Massimo
31 de Julio del 2012
estrellaestrellaestrellaestrellaestrella
Copie el codigo tal cual y todos los meses tienen 31 dias???????
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s223