Avatar Image
Usuario habitual
Usuario habitual

Hola que tal. este calendario tiene un pequeño problema y es que no me da el dia del mes correctamente. ejemplo. si el dia 4 de agosto cae jueves, el me dice que cae sabado. Si alguien sabe como arreglar esto se lo agradecere. ;-)


<link href="estilo.css" rel="stylesheet" type="text/css">
<?
if (isset($show_month)) {
if ($show_month==">") {
if($month==12) {
$month=1;
$year++;
} else {
$month++;
}
}
if ($show_month=="<") {
if($month==1) {
$month=12;
$year--;
} else {
$month--;
}
}
}
if (isset($day)) {
if ($day<="9"&ereg("(^[1-9]{1})",$day)) {
$day="0".$day;
}
}
if (isset($month)) {
if ($month<="9"&ereg("(^[1-9]{1})",$month)) {
$month="0".$month;
}
}
if (!isset($year)) {
$year=date("Y",mktime());
}
if (!isset($month)) {
$month=date("m",mktime());
}
if (!isset($day)) {
$day=date("d",mktime());
}
$thisday="$year-$month-$day";
$day_name=array(Lun,Mar,Mie,Jue,Vie,Sáb,"<font color=\"#FF0000\">Dom</font>");

$month_abbr=array("",Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre);

$y=date("Y");
switch ($month) {
case 1: $month_name = Enero; break;
case 2: $month_name = Febrero; break;
case 3: $month_name = Marzo; break;
case 4: $month_name = Abril; break;
case 5: $month_name = Mayo; break;
case 6: $month_name = Junio; break;
case 7: $month_name = Julio; break;
case 8: $month_name = Agosto; break;
case 9: $month_name = Septiembre; break;
case 10: $month_name = Octubre; break;
case 11: $month_name = Noviembre; break;
case 12: $month_name = Diciembre; break;
}
?>

<table width="175" border="0" cellspacing="2" cellpadding="1">
<tr align="center">
<td colspan="7" align="center"><font size="1"><b><? echo "$month_name $year"; ?></b></font></td>
</tr>
<tr align="center">
<?
for ($i=0;$i<7;$i++) { ?>
<td width="25" align="center"><? echo "$day_name[$i]"; ?></td>
<? } ?>
</tr>
<tr align="center">
<?
if (date("w",mktime(0,0,0,$month,1,$year))==0) {
$start=7;
} else {
$start=date ("w",mktime(0,0,0,$month,1,$year));
}
for($a=($start-2);$a>=0;$a--)
{
$d=date("t",mktime(0,0,0,$month,0,$year))-$a;
?>
<td bgcolor="#EEEEEE" align="center"><?=$d?></td>
<? }
for($d=1;$d<=date("t",mktime(0,0,0,($month+1),0,$year));$d++)
{
if($month==date("m")&$year==date("Y")&$d==date("d")) {
$bg="bgcolor=\"#EE9090\"";
} else {
$bg="bgcolor=\"#CDCDCD\"";
}
?>
<?
$evento = "$d";
$evento.= "$month_name$year.php";
?>
<?
if (file_exists("eventos/$evento")) {
?>
<td bgcolor="orange" align="center" onClick=javaScript:window.open('<? echo "eventos/$evento" ?>','','scrollbars=yes,width=350,height=250');history.go(9) style="cursor:hand"><?=$d?></a></td>
<? } else {?>
<td <?=$bg?> align="center"><?=$d?></td>
<? } ?>

<?
if(date("w",mktime(0,0,0,$month,$d,$year))==0&date("t",mktime(0,0,0,($month+1),0,$year))>$d)
{
?>
</tr>
<tr align="center">
<? }}
$da=$d+1;
if(date("w",mktime(0,0,0,$month+1,1,$year))<>1)
{
$d=1;
while(date("w",mktime(0,0,0,($month+1),$d,$year))<>1)
{
?>
<td bgcolor="#EEEEEE" align="center"><?=$d?></td>
<?
$d++;
}
}
?>
</tr>
</table>

Avatar Image
Colega ;)
Colega ;)

Arreglarlo no, pero hay un codigo javascript que hace eso y va perfectamente.


Si necesitas ayuda para configurarlo pregunta en el subforo javascript.


El codigo es este:

Codigo PHP:

<!-- CALENDARIO -->
<BloqueCalendario>
<div class="titulomenu">
<h4>Calendario</h4>
</div>
<script type="text/javascript" language="JavaScript">
<!--
function calendar()
{
var monthNames = new Array("Enero", "Febrero", "Marzo", "Abril",
"Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
var today = new Date();
var thisDay = today.getDate();
var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

year = today.getYear();
if(year < 1000){ year = year + 1900; }

// ¿año bisciesto?
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
monthDays[1] = 29;
// achar o numero de dias deste mes
nDays = monthDays[today.getMonth()];
firstDay = today;
firstDay.setDate(1);
startDay = firstDay.getDay();
document.writeln("<CENTER>");
document.write("<TABLE BORDER>");
document.write("<TR><TH COLSPAN=7>");
document.write(monthNames[ today.getMonth() ] + " " + year);
document.write("<TR><TH>");
document.write("D<TH>L<TH>Ma<TH>Mi<TH>J<TH>V<TH>S");
document.write("<TR>");
column = 0;
for (i=0, column=0; i<startDay; i++, column++)
document.write("<TD>");

for (i=1; i<=nDays; i++)
{
document.write("<TD>");
if (i == thisDay)
  document.write("<FONT COLOR=\"#FF0000\">" + i + "</FONT>");
else document.write(i);
column++;
if (column == 7)
{
document.write("<TR>"); // inicio de nueva linea
column = 0;
}
}
document.write("</TABLE>");
document.writeln("</CENTER>");
}
calendar();
//-->
</script>
</Calendario>
</BloqueCalendario>
<!-- FIN CALENDARIO -->

Avatar Image
Usuario habitual
Usuario habitual

El punto esta en que con el yo quiero usar este me deja enviar eventos y los guarda en la carpeta eventos/ luego me hace un link en el calendario. Por eso es que quiero ver de que forma se puede hacer que me de la fecha correcta.. Gracias Divertido

Avatar Image
Usuario habitual
Usuario habitual

El punto esta en que con el yo quiero usar este me deja enviar eventos y los guarda en la carpeta eventos/ luego me hace un link en el calendario. Por eso es que quiero ver de que forma se puede hacer que me de la fecha correcta.. Gracias Divertido

Vaita
Usuario habitual
Usuario habitual

pues yo he copiado el codigo ese q has puesto y ami me ha slido los dias bien, mira tu reloj del pc a ver si lo tines todo bien(año,mes...)

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares