/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kalender problem
Fra : Nederbasse


Dato : 09-12-07 15:29

Hej NG

JEg har hentet et kalenmder script på www.jweber.dk som er en simpel
kalender der kan det jeg skal bruge.
Nu er det sådan at jeh også gerne vil have den forgående måned vist i en
anden kalender
og jeg er på bar bunbd hvordan da mine forsøg kun ender i fejl
Så hvordan?

Her er koden:

<head>

<!-- kalender (header) start -->
<?php


$maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');

$aar=date("Y",time());
$maaned=date("n",time());
$idag=date("j",time());
$mktime=mktime(0,0,0,$maaned,1,$aar);
?>
<!-- kalender (header) slut -->
</head>
<body>
<!-- kalender start -->
<table cellpadding="2" cellspacing="0" style="text-align:center;
font-family: verdana; font-size: 8pt;">
<tr>
<td colspan="7" ><?php echo $maaneder[$maaned];?></td>
</tr>
<tr>
<td>Man</td>
<td>Tirs</td>
<td>Ons</td>
<td>Tors</td>
<td>Fre</td>
<td>Lør</td>
<td>Søn</td>
</tr>

<?php
for($i=0;$i<date("t",$mktime);$i+=7){
echo "<tr style='text-align:center'>";
if (!date("w",$mktime)==0) {
for ($y=1;$y<8;$y++){
if ($y>=date("w",$mktime) or $i>0) {
$x++;
$dato=$x;
}
if ($x>date("t",$mktime)) {
$dato="";
}
if ($dato==$idag) {
$farve="#ff0000"; //farve på datoen idag
}
else {
$farve="#000000"; //farve på de andre dage
}
//værdien på background-color kan ændres hvis du ønsker en anden
baggrundsfarve
echo "<td style='background-color:#fff; color:".$farve."; width:
30px;'>".$dato."</td>";
}
}
echo "</tr>";
}
echo "</table>";
?>
<!-- kalender slut -->


Lars



 
 
Jesper Weber (09-12-2007)
Kommentar
Fra : Jesper Weber


Dato : 09-12-07 22:11

Hej Lars, de eneste ændringer der skal foretages er disse 5 linier som der er tilføjet kommentare til i starten af scriptet eller er
resten af koden ens.

$maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');

$aar=date("Y",time());
$maaned=(date("n",time())-1); //denne linier er justeret
if($maaned==0) { //denne linie er tilføjet
   $aar-=1; //denne linie er tilføjet
$maaned = 12; //denne linie er tilføjet
} //denne linie er tilføjet
$idag=date("j",time());
$mktime=mktime(0,0,0,$maaned,1,$aar);


Venlig hilsen
jweber

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Weber (09-12-2007)
Kommentar
Fra : Jesper Weber


Dato : 09-12-07 22:19

Jesper Weber wrote in dk.edb.internet.webdesign.serverside.php:
> Hej Lars, de eneste ændringer der skal foretages er disse 5 linier som der er tilføjet kommentare til i starten af scriptet eller er
> resten af koden ens.
>
> $maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');
>
> $aar=date("Y",time());
> $maaned=(date("n",time())-1); //denne linier er justeret
> if($maaned==0) { //denne linie er tilføjet
>    $aar-=1; //denne linie er tilføjet
> $maaned = 12; //denne linie er tilføjet
> } //denne linie er tilføjet
> $idag=date("j",time());
> $mktime=mktime(0,0,0,$maaned,1,$aar);
>
>
> Venlig hilsen
> jweber
>
> --


Du kan så også lige ændre farven sådan dagen ikke bliver vist med rødt, bare ændre den til sort lige som de andre dage er.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Nederbasse (10-12-2007)
Kommentar
Fra : Nederbasse


Dato : 10-12-07 20:56


"Jesper Weber" <jweber@ofir.dk> skrev i en meddelelse
news:475c59ed$0$90270$14726298@news.sunsite.dk...
> Hej Lars, de eneste ændringer der skal foretages er disse 5 linier som der
> er tilføjet kommentare til i starten af scriptet eller er
> resten af koden ens.
>
> $maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');
>
> $aar=date("Y",time());
> $maaned=(date("n",time())-1); //denne linier er justeret
> if($maaned==0) { //denne linie er tilføjet
> $aar-=1; //denne linie er tilføjet
> $maaned = 12; //denne linie er tilføjet
> } //denne linie er tilføjet
> $idag=date("j",time());
> $mktime=mktime(0,0,0,$maaned,1,$aar);
>
>
> Venlig hilsen
> jweber
>
> --
> SNIP

Og så fra forfatterens egen hånd

Nu kommer 10000 kr spørgsmålet:
Hvorfor kan jeg ikke include den enne fil med sidste måned og den anden fil
med denne måned på samme side? ( http://www.neder.dk/kalender/ )
Jeg har prøvet at ændre variabelnavne men så kom denne måneds datoer til at
stå i uorden
Det er vel noget med php's måde at behandle headere på

Lars



jweber (10-12-2007)
Kommentar
Fra : jweber


Dato : 10-12-07 21:42

Nederbasse wrote in dk.edb.internet.webdesign.serverside.php:
> "Jesper Weber" <jweber@ofir.dk> skrev i en meddelelse
> news:475c59ed$0$90270$14726298@news.sunsite.dk...
> > Hej Lars, de eneste ændringer der skal foretages er disse 5 linier som der
> > er tilføjet kommentare til i starten af scriptet eller er
> > resten af koden ens.
> >
> > $maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');
> >
> > $aar=date("Y",time());
> > $maaned=(date("n",time())-1); //denne linier er justeret
> > if($maaned==0) { //denne linie er tilføjet
> > $aar-=1; //denne linie er tilføjet
> > $maaned = 12; //denne linie er tilføjet
> > } //denne linie er tilføjet
> > $idag=date("j",time());
> > $mktime=mktime(0,0,0,$maaned,1,$aar);
> >
> >
> > Venlig hilsen
> > jweber
> >
> > --
> > SNIP
>
> Og så fra forfatterens egen hånd
>
> Nu kommer 10000 kr spørgsmålet:
> Hvorfor kan jeg ikke include den enne fil med sidste måned og den anden fil
> med denne måned på samme side? ( http://www.neder.dk/kalender/ )
> Jeg har prøvet at ændre variabelnavne men så kom denne måneds datoer til at
> stå i uorden
> Det er vel noget med php's måde at behandle headere på
>
> Lars
>
>

Fik lige et tip fra en at der var en der ønskede hjælp til lidt ændringer af et at mine script, så måtte jeg jo lige hjælpe til. Er
jo kun gla for at folk kan bruge det.

Den nemmeste måde lige at forklare her er at du kan pakke koden ind i to funktioner så den ene ser sådan her ud:

   <!-- kalender start -->

<?php
   function kalender1() {
      //Dette script og andre kan findes på:
      //http://www.jweber.dk
   
      $maaneder=array('','Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');

      $aar=date("Y",time());
      $maaned=(date("n",time())-1);
      if($maaned==0) {
         $aar-=1;
         $maaned = 12;
      }
      $idag=date("j",time());
      $mktime=mktime(0,0,0,$maaned,1,$aar);
      ?>

      <table cellpadding="3" cellspacing="0" style="text-align:center;">
         <tr>
            <td colspan="7" style="font-weight:bold;"><?php echo $maaneder[$maaned];?></td>
         </tr>
         <tr>
          <td>Man</td>
          <td>Tirs</td>
          <td>Ons</td>
          <td>Tors</td>
          <td>Fre</td>
          <td>Lør</td>
          <td>Søn</td>
         </tr>
         
      <?php
      for($i=0;$i<date("t",$mktime);$i+=7){
         echo "<tr style='text-align:center'>";
         if (!date("w",$mktime)==0) {
            for ($y=1;$y<8;$y++){
               if ($y>=date("w",$mktime) or $i>0) {
                  $x++;
                  $dato=$x;
                  }
               if ($x>date("t",$mktime)) {
                  $dato="";
                  }
               if ($dato==$idag) {
                  $farve="#ff0000"; //farve på datoen idag
                  }
               else {
                  $farve="#000000"; //farve på de andre dage
                  }
               //værdien på background-color kan ændres hvis du ønsker en anden baggrundsfarve
               echo "<td style='background-color:#e9e9e9; color:".$farve."; width: 30px;'>".$dato."</td>";
               }
            }
         echo "</tr>";
         }
      echo "</table>";
   }
      ?>
      <!-- kalender slut -->

og så kalde funktionen der hvor du vil have den placeret med denne linie:

<?php

kalender1();

?>

den anden kalender kan du også pakke ind i en funktion som du kan kalde kalender og kalde den på samme måde.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (11-12-2007)
Kommentar
Fra : Martin


Dato : 11-12-07 11:29

jweber wrote:
>>> $aar=date("Y",time());
>>> $maaned=(date("n",time())-1); //denne linier er justeret
>>> if($maaned==0) { //denne linie er tilføjet
>>> $aar-=1; //denne linie er tilføjet
>>> $maaned = 12; //denne linie er tilføjet
>>> } //denne linie er tilføjet

Erstat ovenstående linjer med...

if(!isset($_GET['aar']) $arr = date("Y",time());
else $arr = $_GET['aar'];

if(!isset($_GET['maaned']) $maaned=date("n",time());
else {
if($_GET['maaned']<1) { $arr=-1; $maaned=12; }
elseif($_GET['maaned']>12) { $arr=+1; $maaned=1; }
}


Nu kan du kalde det med fx
kalender.php?maaned=1&aar=2007
eller kalender.php

Martin (11-12-2007)
Kommentar
Fra : Martin


Dato : 11-12-07 20:53

Martin wrote:
> jweber wrote:
>>>> $aar=date("Y",time()); $maaned=(date("n",time())-1); //denne linier
>>>> er justeret if($maaned==0) { //denne linie er tilføjet
>>>> $aar-=1; //denne linie er tilføjet $maaned =
>>>> 12; //denne linie er tilføjet
>>>> } //denne linie er tilføjet
>
> Erstat ovenstående linjer med...
>
> if(!isset($_GET['aar']) $arr = date("Y",time());
> else $arr = $_GET['aar'];
>
> if(!isset($_GET['maaned']) $maaned=date("n",time());
> else {
> if($_GET['maaned']<1) { $arr=-1; $maaned=12; }
> elseif($_GET['maaned']>12) { $arr=+1; $maaned=1; }
> }
>
>
> Nu kan du kalde det med fx
> kalender.php?maaned=1&aar=2007
> eller kalender.php

Også kan der laves links med

echo '<a href="?maaned=' . $_GET['maaned']-1 . '&amp;aar=' .
$_GET['aar'] . '">Forrige måned</a>

echo '<a href="?maaned=' . $_GET['maaned']+1 . '&amp;aar=' .
$_GET['aar'] . '">Næste måned</a>

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste