Avatar billede hkb-x Nybegynder
30. marts 2006 - 21:02 Der er 4 kommentarer og
1 løsning

Måneds Kalender

Hvordan laver man en kalender i php. Altså en månedskalender hvor man ser alle månedens dage opstillet i rækker efter ugedage?
Avatar billede hkb-x Nybegynder
30. marts 2006 - 21:04 #1
LUKKET

FAndt et godt script...
Avatar billede hkb-x Nybegynder
30. marts 2006 - 21:04 #2
Lukket
Avatar billede well_r Nybegynder
30. marts 2006 - 21:42 #3
skriv det og del det med os andre?
Avatar billede hkb-x Nybegynder
31. marts 2006 - 10:28 #4
@well_r

Jeg har lavet et godt grundscript helt fra bunden ud fra de idéer jeg har fået ved at søge på google... Jeg bygger det ud så det bliver nemt at administrere og får mange funktioner samt en let og overskuelig kode...

Jeg regner med at publicere det som en artikkel om en lille måneds tid når jeg er færdig...

skal nok ligge et link her til artiklen...
Avatar billede gf Nybegynder
31. marts 2006 - 16:36 #5
til evt interesserede.

<?php
/* Kalenderscriptet*/
/* Tjekker året er sat i adresselinien, ellers bliver det i år */
$aar = (empty($_GET['y'])) ? date(Y) : $_GET['y'];
/* Tjekker måneden er sat i adresselinien, ellers bliver den sat til aktuel måned */
$maaned = (empty($_GET['m'])) ? date('m') : $_GET['m'];
/* Array med ugedage */
$uger = array('Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn');
/* Den aktuelle dato i unix epoch (antal sekunder siden 1. jan 1970) */
$dato = mktime(0,0,0,$maaned, 1, $aar);
/* Antal dage i måneden */
$antalDageMaaned = date('t', $dato);
/* Første ugedag (hvis det er søndag (0) sættes den til 7) */
$foersteUgedag = (date('w', $dato) == 0) ? 7 : date('w', $dato);
/* Udskriver måned og år */
print ('<h2>'.date('F', $dato).' - '.$aar.'</h2>');
/* Udskriver forrige/næste knap */
printf('<a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Forrige</a> - <a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Næste</a>', date('m', strtotime("-1 month", $dato)), date('Y', strtotime("-1 month", $dato)), date('m', strtotime("+1 month", $dato)), date('Y', strtotime("+1 month", $dato))); 
/* Tabellen starter */
print ('<table border="1"><tr>');
/* En række med ugedage udskrives */
for ($i = 1; $i < count($uger); $i++) {
  print ('<td>'.$uger[$i].'</td>');
}
print ('</tr>');
/* Løkken kører så længe der er dage tilbage i måneden */
for ($dag = 1; $dag <= $antalDageMaaned; $dag++) {
  print ('<tr>');
  /* Ugedage-løkken køres igennem */
  for ($u = 1; $u <= 7; $u++) {
 
    /* Udskriver tomme pladser hvis måneden ikke starter med en mandag */
    if ($u < $foersteUgedag && $foersteUgedag+$dag <= 8) {
    print ('<td></td>');
    } else {
      /* Datoen udskrives, hvis den er inde for måneden, ellers kommer der bare en tom celle url links overfoeres*/
      print ( ($dag <= $antalDageMaaned)
              ? "<td><a href='test.php?aar=$aar&maaned=$maaned&dato=$dag'>$dag</a></td>"
              : '<td></td>' );
      /* Hvis ugedagen ikke er søndag ligges der en til. (ellers tæller den to om søndagen) */
      if ($u != 7) $dag++;
    }
  }
  print ('</tr>');
}
print ('</table>');
?> 

mvh gf
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester