webForumDet fria alternativet

Hjälp med en Kalender - Få sön till måndag.

PHP

7 svar · 423 visningar · startad av Lindström

Medlem sedan jan. 2003821 inlägg
Frågan#1

Har ett litet dilemma som jag skulle behöva ha lite hjälp med.

Det är så här att jag har en websida där det sitter en simpel ren enkel kalender. Men kruxet är att den börjar veckodagen på en Söndag, och inte som det nu är som alla vet en Måndag ( nähä Jörgen..det menar du inte !!! :) ).

Se bifogad bild för bättre uppfattning.

Har kollat lite snabbt igenom själva scriptet, men hittar inte själv någonstanns där man säger till,..eller hur man nu ska förklara att den ska ändra från Söndag till Måndag.

Jag klistrar in själva scriptet här under så kan väl den som känner sig manad och har lite tid över kolla om han eller hon kan få till det.

<?/*********************************************************************

By Morgan Andersson 2002.

[url]www.morgande.com[/url]
[url]www.3dlr.com[/url]

If you use this script then please buy a domainname to support me.

************************************************************************/

define ('ADAY', (60*60*24));
$datearray = getdate();
$month = $datearray['mon'];
$year = $datearray['year'];

$start= mktime(0,0,0,$month,1,$year);
$firstdayarray = getdate($start);

$months = Array('Januari','Februari','Mars','April','Maj','Juni',
				'July','Augusti','September','Oktober','November','December');
$days = Array('Sön','Mån','Tis','Ons','Tor','Fre','Lör');

?>

<table border=0 cellpadding=1 bordercolor="000000" cellspacing="0">
  <tr> 
    <td colspan="7" bordercolor="000000"> 
      <div align="center"><font color="#000000"><b><font face="Tahoma, Verdana" size="1"> 
        <? echo "$datearray[month] $year";?>
        </font></b></font></div>
    </td>
  </tr>
  <?

foreach($days as $day)
{
?>
  <td bordercolor="ffffff"> 
    <div align="center"><font color="#000000"><b><font face="Tahoma, Verdana" size="1"> 
      <?echo"$day";?>
      </font></b></font></div>
  </td>
  <?
}
for( $count=0;$count<(6*7);$count++)
{
	$dayarray = getdate($start);
	if((($count) % 7) == 0)
	{
		if($dayarray['mon'] != $datearray['mon'])
			break;
		echo "</tr><tr>";
	}
	if($count < $firstdayarray['wday'] || $dayarray['mon'] != $month)
	{
		echo "<td bordercolor=ffffff><br></td>";
	}
	else
	{
		if($dayarray['mday'] == $datearray['mday'])
		{
		?>
  <td bgcolor="#FFCC99" bordercolor="#FFCC99"> 
    <div align="center"><font face="Tahoma, Verdana" size="1"> 
      <? echo "$dayarray[mday]";?>
      </font></div>
  </td>
  <?
				$start += ADAY;
		}
		else
		{
	?>
  <td bordercolor="ffffff"> 
    <div align="center"><font face="Tahoma, Verdana" size="1"> 
      <? echo "$dayarray[mday]";?>
      </font></div>
  </td>
  <?
		$start += ADAY;
		}
	}
}
?>
  </tr>
</table>
kal_dump.jpg
Medlem sedan juli 200012 978 inlägg
#2

Vad händer om du kastar om en dag här till att börja med!
$days = Array('Sön','Mån','Tis','Ons','Tor','Fre','Lör');
så den blir såhär
$days = Array('Mån','Tis','Ons','Tor','Fre','Lör','Sön');
sedan är det väl firstdate!

Medlem sedan jan. 2003821 inlägg
#3

Lasp skrev:

Vad händer om du kastar om en dag här till att börja med!
$days = Array('Sön','Mån','Tis','Ons','Tor','Fre','Lör');
så den blir såhär
$days = Array('Mån','Tis','Ons','Tor','Fre','Lör','Sön');
sedan är det väl firstdate!

Det som händer, det är ju att datumet blir totalt fel. Eller totalt och totalt..men det blir en dag förskjutning på datumet. Så tex i dag så skulle det ha varit Lördag, om jag skulle kasta om det hela.

För det är ju bara själva veckodagen som byter plats. Och själva datumet blir ju kvar som vanligt, om du förstår vad jag menar. Så som i dag, fredag erkätts med Lördag. Men dagens datum står fortfarande som 20.

Medlem sedan juni 200032 967 inlägg
#4

Lindström, redigera gärna in [php]-taggar runt scriptet, så blir det mycket mer lättläst, och det blir då lättare för folk att hjälpa till.

mvh

Medlem sedan jan. 2003821 inlägg
#5

@nders skrev:

Lindström, redigera gärna in [php]-taggar runt scriptet, så blir det mycket mer lättläst, och det blir då lättare för folk att hjälpa till.

mvh

Ah..sorry.

Medlem sedan maj 2005704 inlägg
#6

Det är tydligen så att första veckodagen är söndag om man skall vara noga, men måndagen har blivit ansett som första dagen av de flesta då arbetsveckan börjar då.

Förutom att ändra i din $days array så den är i den ording du önskar testa detta:

	$dayNum = $firstdayarray['wday'] == 0 ? 6 : $firstdayarray['wday']-1;
	if($count < $dayNum || $dayarray['mon'] != $month) {
Medlem sedan mars 20034 471 inlägg
#7

Blixtsystems skrev:

Det är tydligen så att första veckodagen är söndag om man skall vara noga, men måndagen har blivit ansett som första dagen av de flesta då arbetsveckan börjar då.

Faktiskt beror det på i vilket land du befinner dig. I Sverige börjar den på en måndag, i USA på en söndag... Enligt Bibeln är Söndag veckans sista dag...

Medlem sedan maj 2005704 inlägg
#8

Ok...det är väl ingen i sverige nuförtiden som anser söndagen som den första dagen i veckan.
Men vad jag har förstått så är den det enlig bibeln. Judarna har sabbat på sista dagen i veckan, Lördag, men vi har vilodag på söndagen för att Jesus enligt bibeln återuppstod på den första dagen i veckan, Söndag.

Mark 16 skrev:

2: Och bittida om morgonen på första veckodagen kommo de till graven, redan vid soluppgången.
3: Och de sade till varandra: "Vem skall åt oss vältra bort stenen från ingången till graven?"
4: Men när de sågo upp, fingo de se att stenen redan var bortvältrad. Den var nämligen mycket stor.
5: Och när de hade kommit in i graven, fingo de se en ung man sitta där på högra sidan, klädd i en vit fotsid klädnad; och de blevo förskräckta.
6: Men han sade till dem: "Varen icke förskräckta. I söken Jesus från Nasaret, den korsfäste. Han är uppstånden, han är icke här. Se där är platsen där de lade honom.

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)