Código de PHP - Calendario

sin imagen de perfil

Calendariográfica de visualizaciones


PHP

Publicado el 18 de Junio del 2002 por Ing. Gabriel Humberto (2 códigos)
62.238 visualizaciones desde el 18 de Junio del 2002
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
62.239 visualizaciones desde el 18 de Junio del 2002
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)

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
6 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Mira Pana esta bien cool solo faltaron las imagenes si las tienes deja un comentario con la direccion
Responder
2 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
6 de Octubre del 2004
estrellaestrellaestrellaestrellaestrella
Muy util pararealizar sistemas que interactuencon rangos de fechas, muy personalizable
Responder
3 de Febrero del 2005
estrellaestrellaestrellaestrellaestrella
Está muy bueno el calendario !!!

Y es verdad solo faltan los archivos gif y sería de lujo !!!
Responder
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
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
20 de Febrero del 2007
estrellaestrellaestrellaestrellaestrella
Muy buen codigo, claro y sencillo, muchas gracias por este ejemplo.
Responder
6 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
16 de Abril del 2009
estrellaestrellaestrellaestrellaestrella
ta chevere
Responder
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
20 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
Gabriel me podria hacer el valor de dqarme todas la indicaciones para poder colocarlo en miweb. gracias
Responder
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
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
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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s223