webForumDet fria alternativet

Kalender-problem

2 svar · 245 visningar · startad av westman

westmanMedlem sedan aug. 2004249 inlägg
#1

Skapar en ny tråd då det gäller ett annat kalender-script och ett annat kalender-problem.

Problemet är att kalendern sätter datumen på fel veckodag. Det är endast i månad augusti som den sätter rätt, men byter man till tex september så blir den 1:a på en torsdag (det är en onsdag).

Koden:

<?php

//gör månad

$month2 = array 
    (1=>"Januari", 
     2=>"Februari", 
     3=>"Mars", 
     4=>"April", 
     5=>"Maj", 
     6=>"Juni", 
     7=>"Juli", 
     8=>"Augusti", 
     9=>"September", 
    10=>"Oktober", 
    11=>"November", 
    12=>"December"); 

$month = isset($_GET['month']) ? $_GET['month'] : date('n');
 
$year = date("Y");
 
$day = date("d");
//skapar starttid
 
$timestamp = mktime (0, 0, 0, $month, 1, $year);
$monthname = date("F", $timestamp);
$dagensdatum = date("d");
$dagensdatum2 = date("nd");
//gör tabell
 
print ("<table border=0 cellpadding=3 cellspacing=0 align=center width=245>");
 
 
print ("<tr bgcolor=blue><td colspan=7 align=center><font color=white>
<b>". $month2[$month] ." $year</b></font></td></tr>");
 
print ("<tr bgcolor=blue>

 
<td align=center width=35><b>
<font color=white>Mån</font></b></td>
 
<td align=center width=35><b>
<font color=white>Tis</font></b></td>
 
<td align=center width=35><b>
<font color=white>Ons</font></b></td>
 
<td align=center width=35><b>
<font color=white>Tor</font></b></td>
 
<td align=center width=35><b>
<font color=white>Fre</font></b></td>
 
<td align=center width=35><b>
<font color=white>Lör</font></b></td>
 
 <td align=center width=35><b>
<font color=red>Sön</font></b></td>
 
</tr>\n");
 
$monthstart = date ("w",$timestamp);
if ($monthstart == 0)
 
{
$monthstart = 6;
}
 
$lastday = date("d",mktime(0, 0, 0, $month+1, 0, $year));
$startdate = -$monthstart;
for($k=1; $k <=6; $k++)
{
print("<tr bgcolor=#F4F4F4>");
for ($i = 1; $i<= 7; $i++)
{
$startdate++;
$startdate2 = $month;
if($startdate == 1 || $startdate == 2 || $startdate == 3 || $startdate == 4 || $startdate == 5 || $startdate == 6 || $startdate == 7 || $startdate == 8 || $startdate == 9)
{
   $startdate2 .= 0;
} 
$startdate2 .= $startdate;
 
if(($startdate <=0) || ($startdate > $lastday))
{
print ("<td bgcolor=#F4F4F4> &nbsp</td>"); 
}
elseif (($startdate >= 1) && ($startdate <= $lastday))
{
 
 $curent_timestamp = mktime(0, 0, 0, $month, $startdate, $year);

// Söndag innan dagens datum
if (date("w", $curent_timestamp) == 0 && $dagensdatum2 > $startdate2)
		{
print ("<td align=center><span style=color:red>$startdate</span></td>");
}

// Söndag efter dagens datum
elseif (date("w", $curent_timestamp) == 0 && $dagensdatum2 < $startdate2)
		{
print ("<td align=center><span style=color:red><a href="#">$startdate</a></span></td>");
}
 
 // Dagens datum
 elseif($dagensdatum == $startdate)
	{
	print ("<td align=center bgcolor=#FF6600><a href="#">$startdate</a></td>");
		
// Dag innan dagens datum
	}
	elseif($dagensdatum2 > $startdate2)
	{
	print ("<td align=center>$startdate</td>");
	}

// Lördag efter dagens datum
elseif (date("w", $curent_timestamp) == 6)
	{ 

  print ("<td align=center><a href="#">$startdate</a></td>");
}

// Vardag efter dagens datum
	else
	{
		print ("<td align=center><a href="#">$startdate</a></td>");
	}

}
}
print ("</tr>\n");
}

print ("</table>\n");
print("<div align=center>\n");
print ("<form action=\"kalender.php\" method=get>\n");
print ("Välj månad:\n");

?>
<select name=month>
<option value="1"<? if($month == 1) { echo " selected"; } ?>>Januari</option>
<option value="2"<? if($month == 2) { echo " selected"; } ?>>Februari</option>
<option value="3"<? if($month == 3) { echo " selected"; } ?>>Mars</option>
<option value="4"<? if($month == 4) { echo " selected"; } ?>>April</option>
<option value="5"<? if($month == 5) { echo " selected"; } ?>>Maj</option>
<option value="6"<? if($month == 6) { echo " selected"; } ?>>Juni</option>
<option value="7"<? if($month == 7) { echo " selected"; } ?>>Juli</option>
<option value="8"<? if($month == 8) { echo " selected"; } ?>>Augusti</option>
<option value="9"<? if($month == 9) { echo " selected"; } ?>>September</option>
<option value="10"<? if($month == 10) { echo " selected"; } ?>>Oktober</option>
<option value="11"<? if($month == 11) { echo " selected"; } ?>>November</option>
<option value="12"<? if($month == 12) { echo " selected"; } ?>>December</option>
</select>
<?php

print ("<input type=submit name=submit value=\"Välj\">\n");

print("</form>\n");

	$datum = date("Y-m-d"); 
print "Den $datum"; 
	
	
	$tid = date("H:i:s"); 
print "<br>Kl $tid"; 

$week = date("W"); 
    print "<br> Vecka $week"; 
	
print ("</div>");
?>

Testkörning:
http://www.dwdesign.se/annat/script_tester/kalender.php

Antagligen så är det här:

$monthstart = date ("w",$timestamp);
if ($monthstart == 0)
 
{
$monthstart = 6;
}

som felet ligger, men vad är felet?? Ngn som kan hjälpa mig med detta?? :stud

Patrik81Medlem sedan okt. 2001538 inlägg
#2

Vad händer om du ändrar den 6:an till en 7:a?

$monthstart = date ("w",$timestamp);
if ($monthstart == 0) {
  $monthstart = 7;
}

MVH Patrik

westmanMedlem sedan aug. 2004249 inlägg
#3

nepp, det funkar inte heller. Sätter jag $monthstart till 7 så blir det så här: http://www.dwdesign.se/annat/script_tester/kalender.php -Inte är det tisdag idag heller...
Snälla kan ngn hjälpa mig.. :o

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)